HTML Dog
跳至导航

CSS 背景:多重、尺寸和来源

除了在页面部分区域平铺 单个或平铺背景图片 之外,您还可以应用 多个背景,调整 背景图片的尺寸,并根据框模型 (box model) 的层级定义 背景的来源

多个背景

这是自 Bing Crosbie 登顶榜单以来,网页设计师们一直翘首以盼的“舞步”。

一张重复的背景图,一张单例的背景图,以及将它们组合在同一个框中。

CSS3 允许您通过简单地将图片位置放在逗号分隔的列表中,为单个框应用多个背景图片。


background-image: url(this.jpg), url(that.gif), url(theother.png);

更有用的是,您还可以定义所有其他令人愉悦的背景方面。例如,如果您想为一个厚实的、按钮状的链接设置独立的背景、项目符号和箭头,您可以使用类似这样的方法:


background: url(bg.png), url(bullet.png) 0 50% no-repeat, url(arrow.png) right no-repeat;

很简单,对吧?这与使用 background-imagebackground-positionbackground-repeatbackground-attachmentbackground 相同,只是您可以通过那个方便的小逗号指定多个背景。

背景尺寸

background-size 属性允许您拉伸或压缩背景图片。

background-size: containbackground-size: cover

值可以是:

背景来源

background-origin 是这堆属性里那个非常无聊的“孩子”。不是不聪明,只是无聊。就是那个被其他孩子指指点点、嘲笑的对象。该属性定义了一个框的背景区域实际开始的位置。如果您想到框模型,当您设置背景时,默认情况下,它应该从 padding box 的左上角开始。所以如果您有...


#burrito {
    width: 400px;
    height: 200px;
    border: 10px solid rgba(0,255,0,.5);
    padding: 20px;
    background: url(chilli.png) 0 0 no-repeat;
}

...背景图片应该出现在左上角,在 padding box 中,紧挨着绿色边框的内边缘。但是,您可以使用 background-origin 来改变这种行为。它的自描述值可以是 padding-box(默认,如上所述)、border-boxcontent-box

因此,在前面的示例中添加 background-origin: border-box 将导致背景图片的来源被“塞进”边框内部。