神奇的 CSS 形狀

fmms 12年前發布 | 15K 次閱讀 CSS

在StackOverflow上有這么一個問題,有位同學在http://css-tricks.com/examples/ShapesOfCSS/  找到一些使用CSS做的形狀,其中一位同學對下面的這個形狀充滿了疑問。

形狀是:

神奇的 CSS 形狀

代碼是:

#triangle-up {
width : 0 ;
height : 0 ;
border-left : 50px solid transparent ;
border-right : 50px solid transparent ;
border-bottom : 100px solid red ;
}

這位同學就提問啦,為啥這么這么幾句就能畫出一個三角形呢?
于是呢,有高人出現,這個高人圖文并茂的解釋了這個三角的成因


首先呢,我們需要了解HTML標記的Box Model(盒模型),這個例子中呢我們將content,padding都看作content。忽略掉margin。那么一個盒模型就是下圖

神奇的 CSS 形狀

中間是內容,然后是4條邊。每一條邊都有寬度。
根據上面CSS的定義,沒有border-top(頂邊)的情形下 ,我們的圖形如下:

神奇的 CSS 形狀

width設置為0后 ,內容沒有了就成為下圖:

神奇的 CSS 形狀

height也設置為0,只有底邊了。

神奇的 CSS 形狀

然后兩條邊都是設置為透明,最后我們就得到了

神奇的 CSS 形狀

這個屬于奇技淫巧,但是也說明CSS的強大,沒有做不到只有想不到。另外http://css-tricks.com/examples/ShapesOfCSS/ 還能找到很多其他的形狀,感興趣的同學可以自己去看。

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!