成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【基礎(chǔ)】CSS實(shí)現(xiàn)多重邊框的5種方式

mrli2016 / 996人閱讀

摘要:簡言目前最優(yōu)雅地實(shí)現(xiàn)多重邊框的方案是利用的屬性,但如果要兼容老的瀏覽器,則需要選擇其它的方案。方案是最簡單,最直接的實(shí)現(xiàn)多重邊框的方式。只有一行代碼就可以實(shí)現(xiàn)多重邊框效果。

簡言

目前最優(yōu)雅地實(shí)現(xiàn)多重邊框的方案是利用CSS3box-shadow屬性,但如果要兼容老的瀏覽器,則需要選擇其它的方案。本文簡要地列舉了幾種多重邊框的實(shí)現(xiàn)方案,大家可以根據(jù)項(xiàng)目實(shí)際及兼容性要求等情況,選擇最適合的實(shí)現(xiàn)方案。

1 利用描邊(outline)屬性

方案1利用描邊(outline)屬性結(jié)合border屬性實(shí)現(xiàn)雙重邊框。此方案實(shí)現(xiàn)簡單,兼容性好,能兼容除IE6,7以外的瀏覽器。

1.1 核心代碼
.borders {
  border: solid 6px #fff;
  outline: solid 6px #888;  
}
1.2 演示程序

演示程序

1.3 說明

只能實(shí)現(xiàn)雙重邊框

邊框樣式靈活,可以實(shí)現(xiàn)虛線等樣式的邊框

描邊在盒模型之外,會與外部元素發(fā)生重疊

2 利用額外的DIV

方案2利用額外的DIV嵌套的方式實(shí)現(xiàn)多重邊框。這也是唯一不存在兼容性問題的方案。

2.1 核心代碼
.outer {
    border: solid 6px #888;
    background: #fff;
}
.inner {
    background: #222;
    margin: 6px;
}
2.2 演示程序

演示程序

2.3 說明

兼容性好

可以實(shí)現(xiàn)多重邊框,虛線邊框等樣式

需要額外的DIV元素,增加了代碼復(fù)雜性

3 利用偽元素

方案3利用偽元素(:before)的方式實(shí)現(xiàn)雙重邊框。實(shí)現(xiàn)代碼略復(fù)雜,屬于hack的實(shí)現(xiàn)方式,不推薦。

3.1 核心代碼
.borders {
    border: solid 6px #fff;
    position: relative;
}
.borders:before {
    content: "";
    position: absolute;
    top: -12px;
    left: -12px;
    right: -12px;
    bottom: -12px;
    border: solid 6px #888;
}
3.2 演示程序

演示程序

3.3 說明

IE6,7,8不兼容

:after也可以

同時(shí)應(yīng)用:before:after可以實(shí)現(xiàn)三重邊框

4 利用border-image屬性

方案4利用CSS3border-image屬性實(shí)現(xiàn)多重邊框。實(shí)現(xiàn)方法簡單,但需要制做一個(gè)額外的邊框圖片,兼容性較差。

4.1 核心代碼
.borders {
    border: solid 12px transparent;
    border-image: url("borders.jpg") 12 12 12 12 repeat;
}
4.2 演示程序

演示程序

4.3 說明

本例中,利用border-image-slice將邊框圖片分成如下圖所示的9個(gè)區(qū)域:

其中包括四個(gè)角(1,2,3,4),四條邊(5,6,7,8)以及中間區(qū)域(9)。
repeat表示四條邊都在相應(yīng)的邊框上重復(fù)的平鋪。

5 利用box-shadow屬性

方案5利用box-shadow屬性實(shí)現(xiàn)多重邊框。方案5是最簡單,最直接的實(shí)現(xiàn)多重邊框的方式。只有一行代碼就可以實(shí)現(xiàn)多重邊框效果。利用了陰影(box-shadow)實(shí)現(xiàn)邊框多少有一些hack的味道。

5.1 核心代碼
.borders {
    box-shadow: 0 0 0 6px #fff, 0 0 0 12px #888;
}
5.2 演示程序

演示程序

5.3 說明

為了用陰影模擬邊框,本例中使用了兩個(gè)陰影效果,設(shè)置偏移值和模糊值為0,并適當(dāng)?shù)卦O(shè)置陰影的尺寸,從而實(shí)現(xiàn)了雙重邊框的效果。因?yàn)橐粋€(gè)陰影重疊在另一個(gè)陰影之上,第二個(gè)陰影的尺寸要設(shè)置成第一個(gè)陰影尺寸的兩倍。關(guān)鍵部分是將模糊值設(shè)成0,從而產(chǎn)生像邊框一樣的純色陰影,看起來和邊框一樣。

和描邊(outline)屬性一樣,box-shadow屬性可能會和周邊元素發(fā)生重疊,因此要適當(dāng)?shù)卦O(shè)置元素的外邊距。box-shadow兼容性一般。

6 參考

MDN border-image

MDN box-shadow

Multiple Borders with CSS

CSS-tricks Multiple Borders

7 結(jié)語

本文簡述了5種多重邊框的實(shí)現(xiàn)方式,各有優(yōu)缺點(diǎn),大家要根據(jù)實(shí)際情況進(jìn)行取舍。

文中所述部分文字及代碼匯編于網(wǎng)絡(luò)。因時(shí)間不足,能力有限等原因,存在文字闡述不準(zhǔn)及代碼測試不足等諸多問題。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/113204.html

相關(guān)文章

  • CSS揭秘之《多重邊框

    摘要:還接受第四個(gè)參數(shù)稱作擴(kuò)張半徑,通過指定正值或負(fù)值,可以讓投影面積加大或者減小如果我們想要一道實(shí)線邊框其實(shí)也是可以通過來模擬,原理就是一個(gè)正值的擴(kuò)張半徑加上兩個(gè)為零的偏移量以及為零的模糊值其實(shí)也能實(shí)現(xiàn)上述實(shí)線效果而且似乎挺簡單,但是卻 1、box-shadow還接受第四個(gè)參數(shù)(稱作擴(kuò)張半徑), 通過指定正值或負(fù)值, 可以讓投影面積加大或者減小2、如果我們想要一道實(shí)線邊框其實(shí)也是可以通過b...

    sixgo 評論0 收藏0
  • CSS揭秘之《多重邊框

    摘要:還接受第四個(gè)參數(shù)稱作擴(kuò)張半徑,通過指定正值或負(fù)值,可以讓投影面積加大或者減小如果我們想要一道實(shí)線邊框其實(shí)也是可以通過來模擬,原理就是一個(gè)正值的擴(kuò)張半徑加上兩個(gè)為零的偏移量以及為零的模糊值其實(shí)也能實(shí)現(xiàn)上述實(shí)線效果而且似乎挺簡單,但是卻 1、box-shadow還接受第四個(gè)參數(shù)(稱作擴(kuò)張半徑), 通過指定正值或負(fù)值, 可以讓投影面積加大或者減小2、如果我們想要一道實(shí)線邊框其實(shí)也是可以通過b...

    codeGoogle 評論0 收藏0
  • CSS揭秘之多重邊框

    摘要:多重邊框的兩種實(shí)現(xiàn)方案以由逗號分隔的列表來描述一個(gè)或多個(gè)陰影效果。輪廓與邊框在以下幾個(gè)方面存在不同輪廓不占據(jù)空間,它們被描繪于內(nèi)容之上輪廓可以是非矩形的。是元素的輪廓,懸浮在元素邊框之上。也就是說,它們之間的顏色會繼承父元素的背景色。 多重邊框的兩種實(shí)現(xiàn)方案: border-shadow outline Mutiple border ...

    liuyix 評論0 收藏0
  • 前端修煉 の道 | 帶你走進(jìn)迷人 CSS 世界

    摘要:每條屬性聲明實(shí)現(xiàn)對網(wǎng)頁元素進(jìn)行某種特定格式的設(shè)置,由一個(gè)屬性和一個(gè)值組成,屬性和值之間使用冒號連接,不同聲明之間用分號分隔,所有屬性聲明放到一對大括號中。 showImg(https://segmentfault.com/img/bVbkQCI?w=900&h=383); showImg(https://segmentfault.com/img/bVbkQCO?w=900&h=383)...

    shiweifu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<