[css 揭秘]:CSS揭秘 技巧(二):多重邊框


我的github地址:https://github.com/FannieGirl/ifannie/

源碼都在這上面哦!

喜歡的給我一個星吧

多重邊框

問題:我們通常希望在css代碼層面以更靈活的方式來調整邊框樣式

方案一:box-shadow

目前為止,我們大多數人可能已經用過(或者濫用過)box-shadow來生成投影,不太為人之的是,它還接受四個參數(擴張半徑),通過制定正值或負值,可以讓投影面積加大或者減小,

用它的好處是它支持逗號分隔語法,我們可以創建任意數量的投影

知識背景:box-shadow 屬性向框添加一個或多個陰影。
提示:請使用 border-image-* 屬性來構造漂亮的可伸縮按鈕!

語法:box-shadow: h-shadow v-shadow blur spread color inset;

注釋:box-shadow 向框添加一個或多個陰影。該屬性是由逗號分隔的陰影列表,每個陰影由 2-4 個長度值、可選的顏色值以及可選的 inset 關鍵詞來規定。省略長度的值是 0。

h-shadow 必需。水平陰影的位置。允許負值。
v-shadow 必需。垂直陰影的位置。允許負值。
blur 可選。模糊距離。
spread 可選。陰影的尺寸。
color 可選。陰影的顏色。請參閱 CSS 顏色值。
inset 可選。將外部陰影 (outset) 改為內部陰影。

創建多重邊框,代碼如下

two-1

效果圖:

two-2

實例演示地址:https://jsfiddle.net/Fannie/06sjmL6n/5/

方案二:outline

在某種情況下,你可能只需要兩層邊框,那就可以設置一層常規邊框,再加上outline(描邊) 屬性來產生外層的邊框,這種方法的優點是邊框的樣式十分靈活,不像上面的box-shadow方案 模擬實線邊框(假設我們需要的產生虛線邊框效果,box-shadow 就不可做到)

知識背景:outline (輪廓)是繪制於元素周圍的一條線,位於邊框邊緣的外圍,可起到突出元素的作用。
注釋:輪廓線不會占據空間,也不一定是矩形。

語法:outline:outline-color outline-style outline-width inherit

outline-color 規定邊框的顏色。
outline-style 規定邊框的樣式。
outline-width 規定邊框的寬度。
inherit 規定應該從父元素繼承 outline 屬性的設置。

創建多重邊框,代碼如下

two-5

效果對比圖

two-6

實例演示地址:https://jsfiddle.net/Fannie/06sjmL6n/6/

還想說一點的是改變outline-offset值,可以實現很簡單的縫邊效果

two-8

two71

是不是很奇妙!(就我這個智障這樣想吧!),我想說的是多去思考,多去嘗試,一切皆有可能啊!
這種outline方案,只適合雙層邊框的場景,outline不接受用逗號分隔多個值,邊框不一定會貼合border-radius 屬性產生的圓角,因此如果元素是圓角,它的描邊可能是直角的。在絕大多數的情況下,描邊都是矩形的。

后言:
如果你對基礎的知識點已經很熟悉,你可以自動跳過。寫上去的原因是查漏補缺,鞏固一下基礎。
如果有不對的地方,歡迎你來吐槽。
本文主要參考《CSS 揭秘》一書 以及w3school;
參考鏈接 :http://www.w3school.com.cn/cssref/pr_background-clip.asp


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM