CSS 之 background

background-image

background-image: linear-gradient(red, green)
首先, 是可以直接放上一個(gè)漸變的。

image.png

其次: CSS3提供了多url屬性, 可以在一個(gè)容器里面展示多張圖片。

.wrapper{
           width: 600px;
           height: 400px;
           border: 1px solid #fff;
           position: absolute;
           left: calc(50% - 300px);
           top: calc(50% - 200px);
           background-image: url('./timg1.jpeg'), url('./timg.jpeg');
           background-repeat: no-repeat;
           background-size: 300px 400px, 300px 400px;
           background-position: 0 0, 300px 0;
       }

image.png

要顯示兩張不同的圖片一定要設(shè)置no-repeat。
這個(gè)屬性真正的用途可能在于: 當(dāng)某個(gè)區(qū)域需要展示一張圖片的時(shí)候, 這張圖片非常高清, 10+Mb呢, 然后第一個(gè)url 指向的就是這張高清圖, 第二個(gè)指向的是一張很小可能只有幾K大小的圖片作為占位,告訴用戶(hù)因?yàn)榫W(wǎng)絡(luò)原因還沒(méi)加載出來(lái) 。一旦這個(gè)圖片加載過(guò)來(lái)了, 會(huì)自動(dòng)顯示第一張圖片。所以一般也不需要設(shè)置repeat, size, position這些屬性

background-origin: 定義圖片開(kāi)始渲染的位置,border-box, padding-box, content-box. 例如border-box, 就會(huì)從border處(包括border)開(kāi)始渲染。如果圖片超出容器大小, 還會(huì)渲染出去, 超出容器的大小。

background-position: 在background-origin的基礎(chǔ)上, 進(jìn)行定位。

background-clip: 定義圖片結(jié)束渲染的位置,border-box, padding-box, content-box, text. 將超出的部分剪掉。 很好理解, 說(shuō)說(shuō)text

.wrapper{
           font-size: 80px;
           font-weight: bold;
           background-image: url('./timg1.jpeg');
           -webkit-background-clip: text;
           background-clip: text;
           -webkit-text-fill-color: transparent;
           transition:  background-position .5s;
       }
.wrapper:hover{
          background-position: center center;
}

別忘了在wrapper里面寫(xiě)幾個(gè)字

image.png

就是這么個(gè)效果。這個(gè)效果貌似只有webkit 支持。
background-repeat: repeat, no-repeat, repeat-x, repeat-y, space, round
有這么些個(gè)可選方式。
假設(shè)容器 200 * 200, 圖片 50 * 50
space: 首先會(huì)重復(fù), 如果增加寬度, 參考 flex 布局的 space-between的樣子.

.wrapper{
           margin: 200px auto;
           width: 200px;
           height: 200px;
           background-image: url('./timg.jpeg');
           background-size: 50px 50px;
           background-repeat: space;
       }

image.png

當(dāng)增加的高/寬度足夠添加一張50 * 50進(jìn)來(lái)的時(shí)候, 圖片見(jiàn)的距離會(huì)變?yōu)?code>0, 添加一張新的圖片進(jìn)來(lái)。

round: 會(huì)拉伸.
當(dāng)距離不夠添加大半個(gè)50 * 50 進(jìn)來(lái)的時(shí)候, 會(huì)把所有的圖片稍微拉伸, 不留空隙。 當(dāng)足夠大半個(gè)50 * 50添加進(jìn)來(lái)的時(shí)候, 會(huì)把所有的圖片稍微壓縮, 添加一張新的進(jìn)來(lái), 同樣不留空隙。

round 和 space 可以同時(shí)寫(xiě), 即橫向或者縱向。background-repeat: round space 即橫向round, 縱向space

background-attchment: scroll, fixed, local
scroll: 相對(duì)于容器進(jìn)行定位, 容器的位置不發(fā)生改變, 無(wú)論里面怎么滾動(dòng), 都不會(huì)改變位置。類(lèi)似于fixed定位。背景圖片的位置相對(duì)于容器頂部的位置永遠(yuǎn)不改變。
local: 相對(duì)于容器內(nèi)的內(nèi)容進(jìn)行定位, 如果內(nèi)部發(fā)生滾動(dòng), 就隨著內(nèi)容一起滾動(dòng)。是CSS3的屬性。
fixed: 相對(duì)于真正的視口進(jìn)行定位, 無(wú)論滾動(dòng)條怎么動(dòng), 都不改變位置。但是一旦包裹它的容器離開(kāi)可視區(qū)域, 它也就不再可見(jiàn)。

background-size: cover, contain, ...其他尺寸
cover: 在不改變圖片狀態(tài)的前提下(拉伸, 壓縮),首先是一條邊對(duì)齊, 然后另一條邊等比縮放, 鋪滿(mǎn)容器。有些邊緣部分可能不會(huì)顯示
contain: 圖片一定會(huì)被全部顯示, 但是可能會(huì)有白邊

linear-gradient

創(chuàng)建線(xiàn)性漸變圖像。
background-image: linear-gradient(to top, #f0f, #ff0)

image.png

to top => 0deg
to top right => 45deg
...
顏色后面跟一個(gè)值, 可以是百分比, 可以是像素。

radial-gradient

創(chuàng)建徑向漸變圖像。

還有repeat-linear-gradientrepeat-radial-gradient 以后空了再細(xì)細(xì)研究吧。有些復(fù)雜, 且用得少,但是用好了還是很絢麗的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容