本篇介紹關(guān)于背景(background
)的新增屬性和漸變函數(shù)(gradient
),看看提供了哪些新背景元素控制和多種漸變效果的實現(xiàn)。
背景 Background
background
是多個背景屬性的簡寫,
backgrounf: [background-color] | [background-image] | [background-position][/background-size] | [background-repeat] | [background-attachment] | [background-clip] | [background-origin], ...;
注意: 如果有 background-size
值,需要緊跟 background-position
并且用 "/" 隔開;
background-image
background-image
屬性可以添加多張背景圖片,不同的背景圖像和圖像用逗號隔開,所有的圖片中顯示在最頂端的為第一張。設(shè)置多張 png 圖片,可以出多張背景圖疊加的效果。
background-image: url("../../media/examples/lizard.png"), url("../../media/examples/star.png");
建議: 使用背景圖片的時候,最好也設(shè)置背景顏色(background-color),作為背景圖片不支持時的 planB。
background-size
CSS3 以前,背景圖像大小由圖像的實際大小決定。在 CSS3 中,background-size
屬性可以指定背景圖像的大小,取值像素或百分比(相對于父元素的寬度和高度的百分比的大?。?。
圖片可以保有其原有的尺寸,或者拉伸到新的尺寸,或者在保持其原有比例的同時縮放到元素的可用空間的尺寸:
cover
:保持圖像的寬高比例,縮放背景圖片以完全覆蓋背景區(qū),可能背景圖片部分看不見。contain
:保持圖像的寬高比例,縮放背景圖片以完全裝入背景區(qū),可能背景區(qū)部分空白。- 一個值:這個值指定圖片的寬度,圖片的高度隱式的為 auto
- 兩個值:第一個值指定圖片的寬度,第二個值指定圖片的高度
background-origin
background-origin
規(guī)定了指定背景圖片 background-image
屬性的原點位置的背景相對區(qū)域。
注意: 當(dāng)使用 background-attachment
為 fixed
時,該屬性將被忽略不起作用。
border-box
背景圖片的擺放以 border 區(qū)域為參考padding-box
背景圖片的擺放以 padding 區(qū)域為參考content-box
背景圖片的擺放以 content 區(qū)域為參考
background-clip
background-clip
背景剪裁屬性是指定背景(背景圖片或顏色)的繪制區(qū)域。
-
border-box
:背景區(qū)域延伸到邊框(但是在邊框下層) -
padding-box
:背景區(qū)域延伸到內(nèi)邊距 -
content-box
:背景區(qū)域延伸到內(nèi)容區(qū) -
text
:背景被裁剪成文字的前景色。需要加上前綴-webkit-background-clip: text;
漸變 Gradient
CSS3 漸變(gradients)可以讓在兩個或多個指定的顏色之間顯示平穩(wěn)的過渡。對比使用漸變圖片,gradients 可以減少下載的時間和寬帶的使用,并且在放大時看起來效果更好。
線形漸變
顏色值沿著一條隱式的直線逐漸過渡。由 linear-gradient()
產(chǎn)生。
為了創(chuàng)建一個線性漸變,你必須至少定義兩種顏色節(jié)點。顏色節(jié)點即你想要呈現(xiàn)平穩(wěn)過渡的顏色。同時,你也可以設(shè)置一個起點和一個方向(或一個角度)。
/* 漸變軸為45度,從藍(lán)色漸變到紅色 */ linear-gradient(45deg, blue, red); /* 從右下到左上、從藍(lán)色漸變到紅色 */ linear-gradient(to left top, blue, red); /* 從下到上,從藍(lán)色開始漸變、到高度40%位置是綠色漸變開始、最后以紅色結(jié)束 */ linear-gradient(0deg, blue, green 40%, red);
語法
linear-gradient([ <angle> | to <side-or-corner> ,]? <color-stop-list> )
-
<angle>
:用角度值指定漸變的方向(或角度)。角度順時針增加。 <side-or-corner>
:描述漸變線的起始點位置。to top
,to bottom
,to left
和to right
這些值會被轉(zhuǎn)換成角度0 度
、180 度
、270 度
和90 度
。其余值會被轉(zhuǎn)換為一個以向頂部中央方向為起點順時針旋轉(zhuǎn)的角度。漸變線的結(jié)束點與其起點中心對稱。<color-stop-list>
:顏色變化列表。支持透明度(rgba(255,0,0,0.1)
)。
徑向漸變
radial-gradient()
CSS 函數(shù)創(chuàng)建了一個圖像,該圖像的顏色值由一個中心點(原點)向外擴散并逐漸過渡到其他顏色值。
同樣至少需要定義兩種顏色節(jié)點,也可以指定漸變的中心(默認(rèn)在中心點,center
)、形狀(默認(rèn)橢圓形 ellipse
)、大?。J(rèn) farthest-corner
,表示到最遠(yuǎn)的角落)
語法
radial-gradient( [shape size at position] ? <color-stop-list> [ , <color-stop-list> ]+ )
shape
:橢圓形(ellipse
,默認(rèn))或圓形(circle
)size
:closest-side
, 漸變的邊緣形狀與容器距離漸變中心點最近的一邊相切(圓形)或者至少與距離漸變中心點最近的垂直和水平邊相切(橢圓)。closest-corner
, 漸變的邊緣形狀與容器距離漸變中心點最近的一個角相交。farthest-side
, 與 closest-side 相反,邊緣形狀與容器距離漸變中心點最遠(yuǎn)的一邊相切(或最遠(yuǎn)的垂直和水平邊)。farthest-corner
, 漸變的邊緣形狀與容器距離漸變中心點最遠(yuǎn)的一個角相交。
position
:可以是具體的兩個位置偏移值(10% 20%
),也可以是關(guān)鍵字(left、right、top、bottom)
重復(fù)漸變
重復(fù)多次漸變圖案直到足夠填滿指定元素。由 repeating-linear-gradient()
和 repeating-radial-gradient()
函數(shù)產(chǎn)生。
重復(fù)函數(shù)的參數(shù)同上,不同的是它會基于漸變長度(最后一個色標(biāo)和第一個之間的距離)倍數(shù)重復(fù)。
.linear-repeat { background: repeating-linear-gradient( to top left, lightpink, lightpink 5px, white 5px, white 10px ); }.radial-repeat { background: repeating-radial-gradient( powderblue, powderblue 8px, white 8px, white 16px ); }