css的一些有趣題目
題目1、下面這個圖形,只使用一個標簽,可以有多少種實現方式:
假設我們的單標簽是一個 div:
<div></div>
定義如下通用CSS:
div{
position:relative;
width:200px;
height:60px;
background:#ddd;
}
法一:border
這個應該是最最最容易想到的了
div{
border-left:5px solid deeppink;
}
法二:使用偽元素
一個標簽,算上 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:-5px 0px 0 0 deeppink;
}
法四:內 box-shadow
盒陰影還有一個參數 inset ,用於設置內陰影,也可以完成:
div{
box-shadow:inset 5px 0px 0 0 deeppink;
}
法五:drop-shadow
drop-shadow 是 CSS3 新增濾鏡 filter 中的其中一個濾鏡,也可以生成陰影,不過它的數值參數個數只有 3 個,比之 box-shadow 少一個。可以在w3cschool查看,很簡單。
div{
filter:drop-shadow(-5px 0 0 deeppink);
}
法六:漸變 linearGradient
靈活使用 CSS3 的漸變可以完成大量想不到的圖形,CSS3 的漸變分為線性漸變和徑向漸變,本題使用線性漸變,可以輕易解題:
div{
background-image:linear-gradient(90deg, deeppink 0px, deeppink 5px, transparent 5px);
}
法七:輪廓 outline
這個用的比較少,outline (輪廓)是繪制於元素周圍的一條線,位於邊框邊緣的外圍,可起到突出元素的作用。這個方法算是下下之選。
div{
height:50px;
outline:5px solid deeppink;
}
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;
}
拋開實用性,僅僅是模擬出這個樣式的話,這個方法真的讓人眼前一亮。
css的一些有趣題目