css多樣邊框
阿新 • • 發佈:2020-12-24
半透明邊框
div{ border: 10px solid rgba(255,255,255,.5); background: white; background-clip: padding-box; /*關鍵程式碼*/ }
僅僅將邊框顏色設為半透明是不能實現半透明邊框的,因為預設情況下,背景會延伸到邊框所在區域下層,也就是說邊框以內的都是背景。
通過設定background-clip:padding-box(預設是border-box),讓背景只延伸到padding下層,就是通過padding外沿來裁剪背景,達到半透明邊框。
多重邊框
/* box-shadow 實現方案 */ div { box-shadow: 0 0 0 10px #655, 0 0 0 15px pink, 0 2px 5px 15px rgba(0,0,0,.6); } /* border/outline 實現方案 */ div { border: 10px solid #655; outline: 5px solid pink; }
box-shadow:實現方案通過box-shadow 的第四個引數(擴張半徑)。一個正值的擴張半徑加上兩個為零的偏移量以及為零的模糊值,得到的“投影”其實就像一道實線邊框。而藉助 box-shadow 支援逗號分割語法,可建立任意數量的投影,因此我們就可實現多重邊框效果。
border/outline:border和outline各代表一層邊框。這個方案可實現虛線邊框,但它只能實現兩層邊框。
邊框內圓角
div { outline: .6em solid #655; box-shadow: 0 0 0 .4em #655; /* 關鍵程式碼 */ border-radius: .8em; }
outline 不會跟著元素的圓角走(因而顯示出直角),但 box-shadow 確實會的,因此,將兩者疊加到一起,box-shadow(其擴張值大概等於 border-radius 值的一半) 會剛好填補 outline 和容器圓角之間的空隙,因此可達到我們想要的效果。