background属性
一个元素可以使用 background
来设置他的背景特性,background
是一个复合的属性,包括了 8
个子属性。
background-color
background-color
用于定义元素的背景颜色,值可以是具体的十六进制颜色值 #dedd6f
,可以是 rgb
颜色值rgb(222, 221, 111)
,或者直接用颜色对应的英文表示 gray
,甚至是用关键字 transparent
来表示透明的颜色。
1 | .yellow { |
background-image
background-image
用来定义元素的背景图像,可以通过 url(...)
来引入图片,也可以设置为 none
表示背景为空,还可以设置多张背景且中间用逗号隔开,写到前面的图片将会覆盖写到后面的。
1 | .url { |
background-repeat
background-repeat
定义了背景图像将以何种方式进行平铺。必须先指定 background-image
属性。如果设置 2 个属性,那么第一个用于横向,第二个作用于纵向。如果提供一个参数,则用于横向和纵向。其中,repeat-x
和 repeat-y
只能单独使用。
- repeat-x:横向平铺
- repeat-y:纵向平铺
- repeat:横向和纵向都平铺
- no-repeat:不平铺
- round:背景图像自动缩放直至适应填充满整个容器
- space: 背景图像按照相同的间距平铺直至适应填充满整个容器或某个方向
1 | .repeat-x { |
background-size
background-size
定义了背景图像的尺寸,可以用关键字来定义。contain
按照图片比例将背景图像等比缩放到完全适应容器,而 cover
是图像缩放到完全覆盖区域为止。也可以用长度值或者百分比值来设置。如果设置了 2 个参数,则分别表示横向和纵向。如果只设置了一个值,那表示横向宽度,纵向为 auto
.
1 | .contain { |
background-position
background-positioin
定义了背景图像在容器里的显示位置,可以用关键字 top
、left
、right
、bottom
、center
等来表示,当用 1 个参数的时候设置的时候,另一个方向默认是 center
。当用 2 个关键字来设置的时候,和书写顺序无关。另外还可以用具体数值和百分比来设置,用这些方式来设置的时候第一个参数表示横向,第二个是纵向。如果只有一个参数,则表示横向,纵向默认是居中。
1 | .position-demo .top { |
background-attachment
background-attachment
控制背景图像在可视区或元素内如何滚动。fixed
是相对可视区域进行定位,背景图像相对于可视区域进行定位,不随元素滚动而滚动。scroll
背景图像将在元素区域内固定,不会随着元素内容的滚动而滚动。local
背景图像相对于元素内容占据的区域进行定位,当元素内容滚动的时候,背景图像随之滚动。
1 | .attachment-demo .fixed { |
background-origin
background-origin
规定了背景图像相对于盒模型的哪个区域来定位,对背景颜色无效。content-box
相对于内容区域定义,padding-box
相对于内边距区域定位,border-box
相对边框区域定位
1 | .origin-demo .content { |
background-clip
background-clip
指定背景向外裁剪的区域。padding-box
从 padding
区域(不含 padding
)开始向外裁剪背景。border-box
从 border
区域(不含 border
)开始向外裁剪背景。content-box
从 content
区域开始向外裁剪背景。
1 | .clip-demo .content { |