1. 程式人生 > >css的一些有趣題目

css的一些有趣題目

epp lba school -h 1.5 繪制 趣題 lin style

題目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的一些有趣題目