CSS3實現多樣的邊框效果

kkfd1002發表於2018-05-03

半透明邊框

實現效果:

實現程式碼:

<div>
你能看到半透明的邊框嗎?
</div>
div {

    /* 關鍵程式碼 */
    border: 10px solid rgba(255,255,255,.5);
    background: white;
    background-clip: padding-box;
    
    /* 其它樣式 */
    max-width: 20em;
    padding: 2em;
    margin: 2em auto 0;
    font: 100%/1.5 sans-serif;
}

實現要點:

  • 設定邊框為半透明,這是還看不到半透明邊框,因為預設情況下,背景會延伸到邊框所在的區域下層,也就是背景是被邊框的外沿框裁切掉。
  • 通過設定 background-clip: padding-box (初始值是 border-box) 讓背景不要延伸到邊框所在的區域下層,也就是讓內邊距的外沿來裁切背景。

多重邊框

實現效果:

實現程式碼:

<div></div>
/* box-shadow 實現方案 */
div {

    /* 關鍵程式碼 */
    box-shadow: 0 0 0 10px #655,
            0 0 0 15px deeppink,
            0 2px 5px 15px rgba(0,0,0,.6);
    
    /* 其它樣式 */
    width: 100px;
    height: 60px;
    margin: 25px;
    background: yellowgreen;
}

/* border/outline 實現方案 */
div {

    /* 關鍵程式碼 */
    border: 10px solid #655;
    outline: 5px solid deeppink;
    
    /* 其它樣式 */
    width: 100px;
    height: 60px;
    margin: 25px;
    background: yellowgreen;
}

實現要點:

  • box-shadow 實現方案使用的是 box-shadow 的第四個引數(擴張半徑)。一個正值的擴張半徑加上兩個為零的偏移量以及為零的模糊值,得到的“投影”其實就像一道實線邊框。而藉助 box-shadow 支援逗號分割語法,可建立任意數量的投影,因此我們就可實現多重邊框效果。
  • border/outline 實現方案是使用 border 設定一層邊框,再使用 outline 設定一層邊框。這個方案可實現虛線邊框,但它只能實現兩層邊框。

邊框內圓角

實現效果:

實現程式碼:

<div>我有一個漂亮的內圓角</div>
div {
    outline: .6em solid #655;
    box-shadow: 0 0 0 .4em #655; /* 關鍵程式碼 */
    
    max-width: 10em;
    border-radius: .8em;
    padding: 1em;
    margin: 1em;
    background: tan;
    font: 100%/1.5 sans-serif;
}

實現要點:

  • outline 不會跟著元素的圓角走(因而顯示出直角),但 box-shadow 確實會的,因此,將兩者疊加到一起,box-shadow(其擴張值大概等於 border-radius 值的一半) 會剛好填補 outline 和容器圓角之間的空隙,因此可達到我們想要的效果。
  • http://www.fxm1291.top/
    http://www.wyz5825.top/
    http://www.kbx3827.top/
    http://www.tqt8862.top/
    http://www.yma5505.top/
    http://www.rye6349.top/
    http://www.xqs4260.top/
    http://www.fjv3790.top/
    http://www.wqv1289.top/
    http://www.mxz6626.top/
    http://www.npl2536.top/
    http://www.vme0237.top/
    http://www.edr0603.top/
    http://www.kft8502.top/
    http://www.kwb2561.top/
    http://www.dqv1869.top/
    http://www.iai9521.top/
    http://www.jla2696.top/
    http://www.vip1477.top/
    http://www.ryc2010.top/
    http://www.tpz5308.top/
    http://www.gzi6562.top/
    http://www.dwf8840.top/
    http://www.soq5741.top/
    http://www.pud6117.top/
    http://www.zrv3166.top/
    http://www.ylg5948.top/
    http://www.evm5267.top/
    http://www.mmc0244.top/
    http://www.auk8793.top/
    http://www.nbw1542.top/
    http://www.oka2713.top/
    http://www.txz2284.top/
    http://www.amv5754.top/
    http://www.ubb2737.top/
    http://www.oim9564.top/
    http://www.jhg1176.top/
    http://www.ehe5445.top/
    http://www.vkp0211.top/
    http://www.uzy8206.top/
    http://www.cnn5986.top/
    http://www.nwz4782.top/
    http://news.gzh1725.cn/
    http://news.dox1148.cn/
    http://news.xip7382.cn/
    http://news.ngm1905.cn/
    http://news.dmb8658.cn/
    http://news.nqa8573.cn/
    http://news.esz4596.cn/
    http://news.nhs9541.cn/
    http://news.kfq4961.cn/
    http://news.fsi2703.cn/
    http://news.ybc8953.cn/
    http://news.myy9223.cn/
    http://news.paf5803.cn/
    http://news.njb8631.cn/
    http://news.kzo4326.cn/
    http://news.tso8557.cn/

相關文章