談談一些有趣的CSS題目(一)-- 左邊豎條的實現方法

開本系列,討論一些有趣的 CSS 題目,拋開實用性而言,一些題目爲了拓寬一下解決問題的思路,此外,涉及一些容易忽視的 CSS 細節。css

解題不考慮兼容性,題目天馬行空,想到什麼說什麼,若是解題中有你感受到生僻的 CSS 屬性,趕忙去補習一下吧。html

不斷更新,不斷更新,不斷更新,重要的事情說三遍。git

全部題目彙總在個人 Github 。github

 

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

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

<div></div>

定義以下通用CSS學習

div{
    position:relative;
    width:200px;
    height:60px;
    background:#ddd;
}

 

法一:border

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

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 解題code

div{
    box-shadow:-5px 0px 0 0 deeppink;
}

 

法四:內 box-shadow

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

div{
    box-shadow:inset 5px 0px 0 0 deeppink;
}

 

法五:drop-shadow

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

div{
    filter:drop-shadow(-5px 0 0 deeppink);
}

 

法六:漸變 linearGradient

靈活使用 CSS3 的漸變能夠完成大量想不到的圖形,CSS3 的漸變簡單而言分爲線性漸變和徑向漸變,本題使用線性漸變,能夠輕易解題:

div{
    background-image:linear-gradient(90deg, deeppink 0px, deeppink 5px, transparent 5px);
}

其實,CSS3 漸變遠不止線性漸變和徑向漸變,細分下來,還有重複線性漸變(repeating-linear-gradient)和重複徑向漸變(repeating-radial-gradient)以及已經被最新版本 Chrome 支持的圓錐漸變(conical-gradient),感興趣能夠自行去學習一下。

 

法七:輪廓 outline

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

div{
    height:50px;
    outline:5px solid deeppink;
}
div::after{
    position:absolute;
    content:"";
    top:-5px;
    bottom:-5px;
    right:-5px;
    left:0;
    background:#ddd;
}

 

法8、滾動條

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

div{
    width:205px;
    background:deeppink;
    overflow-y:scroll;
}
div::-webkit-scrollbar{
    width: 200px;
    background-color:#ddd;
}

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

  

上述就是想到的 8 種方法,不排除有沒想到的,但願有其餘的方法能夠在評論中提出,具體 8 種實現能夠戳這裏看看:

codepen-單標籤左邊豎條的實現方式

 

全部題目彙總在個人 Github ,發到博客但願獲得更多的交流。

到此本文結束,若是還有什麼疑問或者建議,能夠多多交流,原創文章,文筆有限,才疏學淺,文中如有不正之處,萬望告知。

相關文章
相關標籤/搜索