您的位置:首页 > Web前端 > CSS

CSS背景属性Background详解

2011-02-01 13:37 906 查看
CSS背景属性Background详解

本文详解了CSS的背景属性Background,包括CSS3中新增的背景属性。如果你是个CSS初学者,还可以查看之前介绍的CSS浮动属性和CSS透明属性详解。

css2 中的背景(background)

CSS2 中有5个主要的背景(background)属性,它们是:

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

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

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

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

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

这些属性可以全部合并为一个缩写属性: background。需要注意的一个要点是背景占据元素的所有内容区域,包括 padding 和 border,但是不包括元素的 margin。它在 Firefox, Safari ,Opera 以及 IE8 中工作正常,但是 IE6 和 IE7 中,background 没把 border 计算在内。

代码

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 中,可以对一个元素应用一个或多个图片作为背景。代码和 css2 中的一样,只需要用逗号来区别各个图片。第一个声明的图片定位在元素顶部,其它的图片按序在其下排列,例如:

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 一样。

新属性:背景原点(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 不同的一个解释参看 CSS3.info

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

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

* background-size: contain;

缩小图片来适应元素的尺寸(保持像素的长宽比)

* background-size: cover;

扩展图片来填满元素(保持像素的长宽比)

* background-size: 100px 100px;

调整图片到指定大小

* background-size: 50% 100%;

调整图片到指定大小。百分比是相对于包含元素的尺寸的。

可以看一下 CSS3规则 网站上的几个例子。

新属性:(background-break)

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

可能值为:

* Background-break: continuous;

默认值。忽略盒之间的距离(也就是像元素没有分成多个盒子,依然是一个整体一样)

* Background-break: bounding-box;

把盒之间的距离计算在内

* Background-break: each-box;

为每个盒子单独重绘背景

背景色(background-color)的改进

background-color 在 css3 中有了稍许改进。除了设置背景颜色之外,如果元素底层的背景图不可用,还可以设置一个“回退色”。

通过在回退色之前增加一个斜杠(/)来实现,例如:

background-color: green / blue;

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

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

CSS2中当图片平铺时,会被元素在末端截断。CSS3 引入了两个属性来修正这个问题:

* space: 应用同等数量的空白到图片之间,直到填满整个元素

* round: 缩小图片直到正好平铺满元素

关于 background-repeat: space; 的一个例子,可以在 CSS3 规则网站看到。

背景附着(background-attachment)的改进

background-attachment 属性增加了一个新值:local。这是用来配合可以滚动的元素的(设置为 overflow: scroll; 的元素)。当 background-attachment 设置为滚动(scroll)时,背景图不会随元素内容的滚动而滚动。

设置为 background-attachment :local; 时,背景图会随内容的滚动而滚动。

摘自:Backgrounds In CSS: Everything You Need To Know
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: