CSS 情况全功略

2021-01-20 15:14 jianzhan

原文连接:Backgrounds In CSS: Everything You Need To Know

译文连接:css 情况全功略

转载请保存版权和连接

——————————————————————————————

情况(background)是css中1个关键的的一部分,也是必须了解的css的基本专业知识之1。这篇文章内容可能涉及到css情况(background)的基础用法,包含诸如 background-attachment 等的特性,也会详细介绍1些相关情况(background)的常见技能,和 css3 中的 情况(background)(包括4个新的情况(background)特性)。

css2 中的情况(background)

简述

CSS2 中有5个关键的情况(background)特性,它们是:

* background-color: 特定填充情况的色调。

* background-image: 引入照片做为情况。

* background-position: 特定元素情况照片的部位。

* background-repeat: 决策是不是反复情况照片。

* background-attachment: 决策情况图是不是随网页页面翻转。

这些特性能够所有合拼为1个缩写特性: background。必须留意的1个关键点是情况占有元素的全部內容地区,包含 padding 和 border,可是不包含元素的 margin。它在 Firefox, Safari ,Opera 和 IE8 中工作中一切正常,可是 IE6 和 IE7 中,background 没把 border 测算在内。

基础特性

情况色(background-color)

background-color 特性用单色来填充情况。有很多方法特定这个色调,下列方法都获得同样的結果。

background-color: blue;
background-color: rgb(0, 0, 255);
background-color: #0000ff;

background-color 也可被设定为全透明(transparent),这会使得其下的元素可见。

情况图(background-image)

background-image 特性容许特定1个照片展现在情况中。能够和 background-color 连用,因而假如照片不反复地话,照片遮盖不到地地区都会被情况色填充。编码很简易,只必须记牢,相对路径是相对款式表的,因而下列的编码中,照片和款式表是在同1个文件目录中的。

background-image: url(image.jpg);

可是假如照片在1个名为 images 的子文件目录中,就应当是:

background-image: url(images/image.jpg);

糖伴番茄:应用 ../ 表明上1级文件目录,例如 background-image: url(../images/image.jpg); 表明照片坐落于款式表的上级文件目录中的 images 子文件目录中。有点绕,但是这个大伙儿应当都了解了,我就不详说了。前端开发观查 版权全部,转载请保存连接。

情况平铺(background-repeat)

设定情况照片时,默认设置把照片在水平静竖直方位平铺以铺满全部元素。这或许是你必须的,可是有时会期待照片只出現1次,或只在1个方位平铺。下列为将会的设定值和結果:

background-repeat: repeat; /* 默认设置值,在水平静竖直方位平铺 */
background-repeat: no-repeat; /* 不平铺。照片只展现1次。 */
background-repeat: repeat-x; /* 水平方位平铺(沿 x 轴) */
background-repeat: repeat-y; /* 竖直方位平铺(沿 y 轴) */
background-repeat: inherit; /* 承继父元素的 background-repeat 特性*/

情况精准定位(background-position)

background-position 特性用来操纵情况照片在元素中的部位。技能是,具体上特定的是照片左上角相对元素左上角的部位。
下面的事例中,设定了1个情况照片而且用 background-position 特性来操纵它的部位,另外也设定了 background-repeat 为 no-repeat。计量企业是像素。第1个数据表明 x 轴(水平)部位,第2个是 y 轴(竖直) 部位。

/* 例 1: 默认设置值 */
background-position: 0 0; /* 元素的左上角 */
 
/* 例 2: 把照片向右挪动 */
background-position: 75px 0;
 
/* 例 3: 把照片向左挪动 */
background-position: ⑺5px 0;
 
/* 例 4: 把照片向下挪动 */
background-position: 0 100px;

background-position 特性能够用其它标值,重要词和百分比来特定,这较为有效,特别是在元素规格并不是用像素设定时。

重要词是无需解释的。x 轴上:

  • * left
  • * center
  • * right

y 轴上:

  • * top
  • * center
  • * bottom

次序层面和应用像素值时的次序基本上1样,最先是 x 轴,其次是 y 轴,像这样:

background-position: top right;

应用百分数时也相近。必须关键的是,应用百分数时,访问器是以元素的百分比标值来设定照片的部位的。看事例就好了解了。假定设置以下:

background-position: 100% 50%;

This goes 100% of the way across the image (i.e. the very right-hand edge) and 100% of the way across the element (remember, the starting point is always the top-left corner), and the two line up there. It then goes 50% of the way down the image and 50% of the way down the element to line up there. The result is that the image is aligned to the right of the element and exactly half-way down it.

糖伴番茄:这1段想不到适合的汉语翻译,保存原文,意译。前端开发观查 版权全部,转载请保存连接。

留意原点一直左上角,最后的实际效果是笑容照片被精准定位在元素的最右侧,离元素顶部是元素的1半,实际效果和 background-position: right center; 1样。

情况附着

background-attachment 特性决策客户翻转网页页面时照片的情况。3个能用特性为 scroll(翻转),fixed(固定不动) 和 inherit(承继)。inherit 单纯性地特定元素承继他的父元素的 background-attachment 特性。

以便正确自然地理解 background-attachment,最先必须搞清楚网页页面(page)和视口(view port)是怎样合作地。视口(view port)是访问器显示信息网页页面的一部分(便是去掉专用工具栏的访问器)。视口(view port)的部位固定不动,不会改变动。

当向下翻转网页页面时,视口(view port)是没动的,而网页页面的內容向上翻转。看起来貌似视口(view port)向网页页面正下方翻转了。假如设定 background-attachment: scroll,就设定了当元素翻转时,元素情况也必须伴随着翻转。简而言之,情况是紧贴元素的。这是 background-attachment 默认设置值。

用1个事例来更清晰地叙述下:

background-image: url(test-image.jpg);
 
background-position: 0 0;
background-repeat: no-repeat;
background-attachment: scroll;

当向下翻转网页页面时,情况向上翻转直至消退。

可是当设定 background-attachment 为 fixed 时,当网页页面向下翻转时,情况要待在它原先的部位(相对访问器来讲)。也便是不随元素翻转。

用另外一个事例叙述下:

background-image: url(test-image.jpg);
background-position: 0 100%;
background-repeat: no-repeat;
background-attachment: fixed;

网页页面早已向下翻转了,可是图象依然维持可见。

必须高度重视的1点是情况图只能出現在它父元素能做到的地区。即便照片是相对视口(view port)精准定位地,假如它的父元素不能见,照片就会消退。参照下面的事例。此例中,照片坐落于视口(view port)的左正下方,可是仅有元素内的照片一部分是可见的。

background-image: url(test-image.jpg);
background-position: 0 100%;
background-repeat: no-repeat;
background-attachment: fixed;

由于照片刚开始在元素以外,1一部分照片被切除。

情况的简写特性

能够把情况的各个特性合为1行,而无需每次都独立把她们写出来。文件格式以下:

background: <color> <image> <position> <attachment> <repeat>

比如,下面的申明

background-color: transparent;
background-image: url(image.jpg);
background-position: 50% 0 ;
background-attachment: scroll;
background-repeat: repeat-y;

能够合为独立1行:

background: transparent url(image.jpg) 50% 0 scroll repeat-y;

并且不必须特定每个值。假如省略值地话,就应用特性地默认设置值。比如,上面那行和下面这个实际效果1样:

background: url(image.jpg) 50% 0 repeat-y;

情况的1般用法

除能够用来使元素更为雅致这类明显的用法以外,情况还可以用于其它的目地。

仿栏

当应用 css 的 float 特性来精准定位合理布局元素时,要保证两栏或多栏有同样的长度是较为艰难的。假如长度不一样,在其中1栏的情况会比此外的短,这会破坏全部设计方案。

仿栏是个十分简易的情况技能,这个技能最开始发布在A List Apart 。思路很简易:已不给每列独立设定情况,而是给各列的父元素设定1个情况图。全部栏的设计方案都包括在这张照片当中。

文字更换

在网页页面上,针对字体样式的挑选是非常比较有限的。可使用 sIFR 之类的专用工具来订制字体样式,可是这必须客户开启 JavaScript 。1个可用于随意访问器的简易方式是,用想用的字体样式来做1张文字照片,并用这张照片做为情况。这样,文字仍然出現在文本文档标识中以供检索模块查找和显示屏访问器鉴别,可是在访问器中就会显示信息首选的字体样式。

比如,HTML 标识将会是这样的:

<h3>Blogroll</h3>

倘若有1个 200 乘 75 的照片,上面有更漂亮的字体样式,便可以用以下方法来更换文字:

h3.blogroll {
width: 200px;
height: 75px; /* So that the element will show the whole image. */
background:url(blogroll-text.jpg) 0 0 no-repeat; /* Sets the background image */
text-indent: ⑼999px; /* Hides the regular text by moving it 9999 pixels to the left */
}

简易的圆点

不用目录中的圆点看起来很不好看。无需再解决全部不一样的 list-style 特性,只必须简易地把她们掩藏并用情况图替代便可以了。由于照片能够随便挑选,这些圆点便可以看起来更好看。

下面,大家把1个不用目录更新改造成有圆润圆点的:

ul {
list-style: none; /* Removes default bullets. */
}
 
ul li {
padding-left: 40px; /* Indents list items, leaving room for background image on the left. */
background: url(bulletpoint.jpg) 0 0 no-repeat;
}

CSS3 中的情况

CSS3 中的情况有较多改善。最明显的是多情况照片的选项,另外也提升了4个新特性。

多情况

CSS3 中,能够对1个元素运用1个或好几个照片做为情况。编码和 css2 中的1样,只必须用逗号来差别各个照片。第1个申明的照片精准定位在元素顶部,其它的照片按顺序在其下排序,比如:

background-image: url(top-image.jpg), url(middle-image.jpg), url(bottom-image.jpg);

新特性:情况修剪(background-clip)

这又把大家带回了文章内容刚开始探讨的那个有关边框内照片显示信息的话题。它被叙述为“情况勾勒区”。

background-clip 特性用来提高情况显示信息部位的操纵工作能力。将会的值为:

* background-clip: border-box;
情况显示信息在边框内。
* background-clip: padding-box;
情况显示信息在内补白(padding)内,而并不是边框内。
* background-clip: content-box;
只在內容内显示信息情况,而并不是内补白(padding)和边框内。
* background-clip: no-clip;
默认设置值,和 border-box 1样。

新特性:情况原点(background-origin)

这个特性和 background-position 融合起来应用。能够从边框,内补白或內容盒子刚开始测算 background-position (相近于 background-clip)。

* background-origin: border-box;
以边框为原点刚开始测算 background-position.
* background-origin: padding-box;
之内补白为原点刚开始测算 background-position
* background-origin: content-box;
之内容盒子为原点刚开始测算 background-position
针对 background-clip 和 background-origin 不一样的1个解释参看 CSS3.info

新特性: 情况规格(background-size)

background-size 用来调剂情况图的尺寸。有好几个将会值:

* background-size: contain;
变小照片来融入元素的规格(维持像素的长宽比)
* background-size: cover;
拓展照片来铺满元素(维持像素的长宽比)
* background-size: 100px 100px;
调剂照片到特定尺寸
* background-size: 50% 100%;
调剂照片到特定尺寸。百分比为相对包括元素的规格的。

能够看1下 CSS3标准 网站上的几个事例。

新特性:(background-break)

CSS3 中,元素能够被分为几个单独的盒子(比如 使内联元素 span 超越多行)。background-break 特性用来操纵情况如何在这些不一样的盒子中显示信息。

将会值为:

* Background-break: continuous;
默认设置值。忽视盒之间的间距(也便是像元素沒有分为好几个盒子,仍然是1个总体1样)
* Background-break: bounding-box;
把盒之间的间距测算在内
* Background-break: each-box;
为每一个盒子独立重绘情况

情况色(background-color)的改善

background-color 在 css3 中有了稍许改善。除设定情况色调以外,假如元素最底层的情况图不能用,还能够设定1个“返回色”。

根据在返回色以前提升1个斜杠(/)来完成,比如:

background-color: green / blue;

此例中,情况色应当是翠绿色(green)。但是,假如最底层情况图不可以应用的话,情况色便是蓝色而并不是翠绿色。假如在斜杠前不特定色调,默认设置为全透明(transparent)。

情况平铺(background-repeat)的改善

CSS2中当照片平铺时,会被元素在尾端断开。CSS3 引进了两个特性来调整这个难题:

* space: 运用同样数量的空白到照片之间,直至铺满全部元素
* round: 变小照片直至恰好平铺满元素
有关 background-repeat: space; 的1个事例,能够在 CSS3 标准网站看到。

情况附着(background-attachment)的改善

background-attachment 特性提升了1个新值:local。这是用来相互配合能够翻转的元素的(设定为 overflow: scroll; 的元素)。当 background-attachment 设定为翻转(scroll)时,情况图不容易随元素內容的翻转而翻转。

设定为 background-attachment :local; 时,情况图会随內容的翻转而翻转。

总结

总结1下,css 中有关情况有很多必须了解的专业知识。可是1旦把这些专业知识融汇贯通了,这些技术性和取名承诺就变得十分成心义并且很快就会变成在潜意识中个人行为了。

假如刚触碰 css,关键持续联络便可以较快地把握情况的关键点了。假如是老手,我期待你能够和我1样希望 css3 。

有关作者

Michael Martin 的文章内容大多数涉及到网页页面设计方案,WordPress 并为 Pro Blog Design 工作中。能够查询更多有关blog设计方案的文章内容或在 twitter 上关心他。

糖伴番茄:1看到这么长篇大论的也头晕,花了好几日的時间折腾这篇文章内容。都是基本的只是,沒有甚么花梢的,可是我感觉最基本的也是最关键的。

鉴于许多网站都会转载他人的文章内容,自然了,好的文章内容大家也会转载,但是一些人立即把他人累死累活的劳动者努力拿来当自身的物品。

这些人真的很无耻,这个大自然环境也真的很可悲,没人想要安安稳稳地办事。这便是为何大家一直汉语翻译海外的文章内容,而并不是把我们的文章内容汉语翻译成外语让外国人看的压根所属。

悲哀啊。