JS Bin?

jsbin.com
圖標

本週講一個常用的需求,邊框的斜條紋如何實現,demo鏈接在上面,主要用到了個核心知識點 repeating-linear-gradient border-image-slice。

這個需求通常來講有這麼三種實現方式。

第一種參考網易嚴選,通過設計切圖,然後在元素周邊新建另外幾個div,然後在這些輔助div裡面橫向重複背景圖片。

第二種跟第一種很相似,不過有一點進步,在border-image上,橫向循環背景圖片。

下面我們來講第三種方式如何優雅地實現斜條紋背景框。

只需幾行,隨用隨改,你想發生什麼故事都可以。

.linear-border {
height: 5rem;
border-style: solid;
border-width: .2rem;
border-image: repeating-linear-gradient(-45deg,
#E8544D,
#E8544D 10px,
white 10px,
white 20px,
#75ADF8 20px,
#75ADF8 30px,
white 30px,
white 40px);
border-image-slice: 5;
}

下面來逐個分析這兩個知識點 repeating-linear-gradient border-image-slice

1. repeating-linear-gradient

總共有兩個參數

第一個參數表示線性漸變的方向,可以是角度( -45deg )也可以是方向( left top )。

第二個參數表示起點顏色和終點顏色。指定漸變的起止顏色,由顏色值、停止位置(可選,使用百分比指定)組成。

我的例子裡面就是通過第一個參數設定了-45度,然後從0-40px每10px依次變換藍,白,紅,三種顏色。

2. border-image-slice

這個屬性顧名思義,就是很簡單的直譯,邊框圖片切片,把邊框圖片四分五裂,再重新安置,變形,其方位規則符合CSS普遍的方位規則(與margin,padding等或border-width一致),上右下左順時針。如果你只聲明瞭 border-image-source border-width border-image-width 沒有任何切片,則整個未切割的圖像將放置在元素的四個角上,縮放到指定的寬度。如果你想實現背景圖片循環展示就得藉助於border-image-slice,它的主要功能是鎖定背景圖片的四個角,然後在其他區域根據參數循環剩餘部分,如果想填充內容部分,選擇fill即可。


推薦閱讀:
相關文章