相似於CSS中的background(背景)屬性。 例如:background:url(xx.jpg) 27px no-repeat;指的是圖片(url(xx.jpg)),位置(27px),重複性(no-repeat)。web
border-image與此相似,border-image包括圖片,剪裁位置(與background位置同樣,也是數值,也支持百分值),重複性。
例如:border-image:url(border.png) 27 repeat; 指的就是圖片(url(border.png)),剪裁位置(27),重複方式(repeat)。
網絡
下面咱們將border-image的複合寫法分解描述, border-image的主要參數就是上面提到的三個:圖片,剪裁位置,重複性。 其實還有另外兩個,文章最後面再講。更好理解
距離圖片上部30%的地方,距離右邊35%,距離底部40%,左邊30%的地方各剪裁一下。也就是對圖片進行了「四刀切」,造成了九個分離的區域,這就是九宮格,這是下面深刻講解border-image的基礎。url
取值爲repeat(重複)只是其中之一,其他兩個是round(平鋪)和stretch(拉伸)。其中,stretch是默認值。spa
參數0~2個,0則使用默認值 – stretch,例如:border-image:url(border.png) 30% 40%;就等同於border-image:url(border.png) 30% 40% stretch stretch;;1則表示水平方向及垂直方向均使用此參數;2個參數的話則第一個參數表水平方向,第二個參數表示垂直方向。例如:border-image:url(border.png) 30% 40% round repeat;表示水平方向round(平鋪),垂直方向repeat(重複)。3d
關於round 和repeat 的區別。
round會湊整填充(進行了適度的拉伸)。repeat不進行拉伸,不湊整。 具體效果看文章後邊的例子。code
經過裁切屬性值,將邊框背景圖切出了「九宮格」的模型,那這張背景圖怎麼對應地貼在div的邊框上呢?blog
<————————> 圖片
咱們用下圖(27×3)px *(27×3)pxpng 作實驗,我給不一樣部位加了一個序號作標誌,便於觀察。
ip
// 加一個藍色背景的父級,便於咱們分析效果。 .border_image { width: 400px; height: 115px; border: 3em double orange; -webkit-border-image: url(border.png) 27 round; border-image: url(border.png) 27 round; } .box { background: blue; } <div class="box"> <div class="border_image"></div> </div>
效果以下
rem
//去掉重複屬性,即默認都爲stretch border-image: url(border.png) 27;
效果以下
//使用repeat border-image: url(border.png) 27 repeat;
效果以下
//邊框寬度改變 border-image: url(border.png) 27 repeat stretch; border-width: 3rem 1rem;
效果以下
這個屬性默認是邊框的寬度,用來限制相應區域背景圖的範圍, 首先相應背景區域的圖像會根據這個屬性值進行縮放。而後再重複或平鋪或拉伸。 在複合寫法中應該位於 slice屬性 和repeat屬性中間 用「/」間隔 如:border-image:url(border.png) 27 / 6rem / repeat;
語法:border-image-width: [ <length> | <percentage> | <number> | auto ]{1,4}
length 帶 px, em, in … 單位的尺寸值 percentage 百分比 number 不帶單位的數字;它表示 border-width 的倍數 auto 使用 auto, border-image-width 將會使用 border-image-slice 的值
border: 3em double orange; border-image: url(border.png) 27 round; border-image-width: 6rem;
效果以下
(白框爲border)
border-image-width: 1.5rem;
效果以下
(白框爲border)
border: 3em double orange; border-image: url(border.png) 27 round; border-image-width: 6rem 1.5rem;
效果以下
(白框爲border)
語法:border-image-outset: [ <length> | <number> ]{1,4} 至關於把原來的貼圖位置向外延伸。不能爲負值,試一下就知道。 在複合寫法中應該位於 border-image-width 後面,用「/」間隔 如:border-image:url(border.png) 27 / 6rem / 1.5rem /repeat; 向外延伸1.5rem再貼圖。。
border: 3em double orange; border-image: url(border.png) 27 round; border-image-width: 1.5rem; border-image-outset: 1.5rem;
效果以下:
(白框爲border)
ps 部分資料來源網絡
親們,看懂沒?不懂請留言,幫你解答。。保會。。