有趣的 CSS 題目(1): 左邊豎條的實現方法

題目1、下面這個圖形,只使用一個標籤,可以有多少種實現方式:


假設我們的單標籤是一個 div:


<div></div>


定義如下通用CSS:


div{

    position:relative;

    width:200px;

    height:60px;

    background:#ddd;

}


法一:border


這個應該是最最最容易想到的了


div{

    border-left:5pxsoliddeeppink;

}


法二:使用僞元素


一個標籤,算上 before 與 after 僞元素,其實算是有三個標籤,這也是很多單標籤作圖的基礎,本題中,使用僞元素可以輕易完成。


div::after{

    content:"";

    width:5px;

    height:60px;

    position:absolute;

    top:0;

    left:0;

    background:deeppink;

}


法三:外 box-shadow


盒陰影 box-shadow 大部分人都只是用了生成陰影,其實陰影可以有多重陰影,陰影不可以不虛化,這就需要去了解一下 box-shaodw 的每一個參數具體作用。使用 box-shaodw 解題


div{

    box-shadow:-5px0px00deeppink;

}


法四:內 box-shadow


盒陰影還有一個參數 inset ,用於設置內陰影,也可以完成:


div{

    box-shadow:inset5px0px00deeppink;

}


法五:drop-shadow


drop-shadow 是 CSS3 新增濾鏡 filter 中的其中一個濾鏡,也可以生成陰影,不過它的數值參數個數只有 3 個,比之 box-shadow 少一個。


div{

    filter:drop-shadow(-5px00deeppink);

}


法六:漸變 linearGradient


靈活使用 CSS3 的漸變可以完成大量想不到的圖形,CSS3 的漸變分爲線性漸變和徑向漸變,本題使用線性漸變,可以輕易解題:


div{

    background-image:linear-gradient(90deg,deeppink0px,deeppink5px,transparent5px);

}


法七:輪廓 outline


這個用的比較少,outline (輪廓)是繪製於元素周圍的一條線,位於邊框邊緣的外圍,可起到突出元素的作用。這個方法算是下下之選。


div{

    height:50px;

    outline:5pxsoliddeeppink;

}

div{

    position:absolute;

    content:"";

    top:-5px;

    bottom:-5px;

    right:-5px;

    left:0;

    background:#ddd;

}


法八、滾動條


這個方法由 小火柴的藍色理想 提供,通過改變滾動條樣式實現:


div{

    width:205px;

    background:deeppink;

    overflow-y:scroll;

}

div::-webkit-scrollbar{

    width:200px;

    background-color:#ddd;

}


拋開實用性,僅僅是模擬出這個樣式的話,這個方法真的讓人眼前一亮。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章