background属性详解

作者:日期:2016-07-03 23:25:54 点击:248 background

background-color: 指定填充背景的颜色。

background-image: 引用图片作为背景。

background-position: 指定元素背景图片的位置。

background-repeat: 决定是否重复背景图片。

background-attachment: 决定背景图是否随页面滚动。

background-color 属性用纯色来填充背景

有许多方式指定这个颜色,以下方式都得到相同的结果。
背景颜色的书写方式:

         background-color:blue

1)blue 2)rgb(0, 0, 255) 3)#0000ff 4)透明颜色transparent

background-image背景图片

     background-image: url(image.jpg);

url中为背景图片的路径

设置背景图片时,默认把图片在水平和垂直方向平铺以铺满整个元素。这也许是你需要的,但是有时会希望图片只出现一次,或者只在一个方向平铺。以下为可能的设置值和结果:

background-repeat 背景图片是否重复

     background-repeat:     1)repeat; /* 默认值,在水平和垂直方向平铺 */     2)no-repeat; /* 不平铺 */
3) repeat-x; /* 水平方向平铺(沿 x 轴) */ 4)repeat-y; /* 垂直方向平铺(沿 y 轴) */ 5)inherit; /* 继承父元素的 background-repeat 属性*/

background-position 属性用来控制背景图片在元素中的位置。
前提必须设置了 background-repeat 为 no-repeat。
如果具体到某一个值,第一个数字表示 x 轴(水平)位置,第二个是 y 轴(垂直) 位置。

     background-position: 0 0; /* 默认值:元素的左上角 */     background-position: 75px 0;     /*          第一个值:+向右移动   -向左移动                 第二个值:+向下一定    -向上移动     */ 

background-position 属性也可以用:
x 轴上:left center right
y 轴上:top center bottom

     background-position: top right;

百分比的方式:(相对于整个盒子的大小)

     background-position: 100% 50%; 

背景附着

background-attachment 属性决定用户滚动页面时图片的状态。三个可用属性为 scroll(滚动),fixed(固定) 和 inherit(继承)。inherit 单纯地指定元素继承他的父元素的 background-attachment 属性。
为了正确地理解 background-attachment,首先需要明白页面(page)和视口(view port)是如何协作地。视口(view port)是浏览器显示网页的部分(就是去掉工具栏的浏览器)。视口(view port)的位置固定,不变动。
当向下滚动网页时,视口(view port)是不动的,而页面的内容向上滚动。看起来貌似视口(view port)向页面下方滚动了。如果设置 background-attachment: scroll,就设置了当元素滚动时,元素背景也必需随着滚动。简而言之,背景是紧贴元素的。这是 background-attachment 默认值。
用一个例子来更清楚地描述下:

     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; 

页面已经向下滚动了,但是图像仍然保持可见。
需要重视的一点是背景图只能出现在它父元素能达到的区域。即使图片是相对于视口(view port)定位地,如果它的父元素不可见,图片就会消失。参见下面的例子。此例中,图片位于视口(view port)的左下方,但是只有元素内的图片部分是可见的。

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

背景的简写属性

可以把背景的各个属性合为一行,而不用每次都单独把他们写出来。格式如下:

     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; 

可以合为单独一行:

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

新属性: 背景尺寸(background-size)

background-size 用来调整背景图的大小。有好几个可能值:

     1)contain;     缩小图片来适应元素的尺寸(保持像素的长宽比)     2) cover;     扩展图片来填满元素(保持像素的长宽比)     3) 100px 100px;     调整图片到指定大小     4) 50% 100%;     调整图片到指定大小。百分比是相对于包含元素的尺寸的。 

新属性:(background-break)

CSS3 中,元素可以被分成几个独立的盒子(例如 使内联元素 span 跨越多行)。background-break 属性用来控制背景怎样在这些不同的盒子中显示。 可能值为:

     1)continuous;     默认值。忽略盒之间的距离(也就是像元素没有分成多个盒子,依然是一个整体一样)     2) bounding-box;     把盒之间的距离计算在内     3)each-box;     为每个盒子单独重绘背景 

需要重视的一点是背景图只能出现在它父元素能达到的区域。即使图片是相对于视口(view port)定位地,如果它的父元素不可见,图片就会消失。参见下面的例子。此例中,图片位于视口(view port)的左下方,但是只有元素内的图片部分是可见的。

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

新属性:背景修剪(background-clip)

background-clip 属性用来增强背景显示位置的控制能力。可能的值为:

     1)border-box;     背景显示在边框内。     2)padding-box;     背景显示在内补白(padding)内,而不是边框内。     3) content-box;     只在内容内显示背景,而不是内补白(padding)和边框内。     4) no-clip;     默认值,和 border-box 一样。 

新属性:背景原点(background-origin)

这个属性和 background-position 结合起来使用。可以从边框,内补白或者内容盒子开始计算 background-position (类似于 background-clip)。

     1) border-box;     以边框为原点开始计算 background-position.     2) padding-box;     以内补白为原点开始计算 background-position     3) content-box;     以内容盒子为原点开始计算 background-position 

新属性: 背景尺寸(background-size)

background-size 用来调整背景图的大小。有好几个可能值:

     1) contain;     缩小图片来适应元素的尺寸(保持像素的长宽比)     2) cover;     扩展图片来填满元素(保持像素的长宽比)     3) 100px 100px;     调整图片到指定大小     4) 50% 100%;     调整图片到指定大小。百分比是相对于包含元素的尺寸的。 

新属性:(background-break)

CSS3 中,元素可以被分成几个独立的盒子(例如 使内联元素 span 跨越多行)。background-break 属性用来控制背景怎样在这些不同的盒子中显示。可能值为:

     1) continuous;     默认值。忽略盒之间的距离(也就是像元素没有分成多个盒子,依然是一个整体一样)     2) bounding-box;     把盒之间的距离计算在内     3) each-box;     为每个盒子单独重绘背景 

背景色(background-color)的改进

background-color 在 css3 中有了稍许改进。除了设置背景颜色之外,如果元素底层的背景图不可用,还可以设置一个“回退色”。
通过在回退色之前增加一个斜杠(/)来实现,例如:

     background-color: green / blue;

此例中,背景色应该是绿色(green)。然而,如果底层背景图不能使用的话,背景色就是蓝色而不是绿色。如果在斜杠前不指定颜色,默认为透明(transparent)。

背景平铺(background-repeat)的改进

CSS2中当图片平铺时,会被元素在末端截断。CSS3 引入了两个属性来修正这个问题:
* space: 应用同等数量的空白到图片之间,直到填满整个元素
* round: 缩小图片直到正好平铺满元素
背景附着(background-attachment)的改进
background-attachment 属性增加了一个新值:local。这是用来配合可以滚动的元素的(设置为 overflow: scroll; 的元素)。当 background-attachment 设置为滚动(scroll)时,背景图不会随元素内容的滚动而滚动。
设置为 background-attachment :local; 时,背景图会随内容的滚动而滚动。

 

上一篇: css元素居中

下一篇: 深入浅出学习层叠样式表--css