在作UI(頁面重構)的時候,免不了和各類小圖標打交道,這其中最多的應該是三角形以及箭頭,通常狀況下能夠經過僞類使用unicode解決大部分問題。css
如今咱們來總結下幾種使用css繪製三角形的方法,dom結構以下:html
<div class="triangle"></div>
代碼忽略
.triangle:after{ display:block; content:"\25B2"; color:"#fd5353"; font-size:20px; }
注意,僞類必須加上content屬性,不然不生效css3
unicode圖表web
.triangle{ width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px solid transparent; border-bottom: 100px solid red; }
使用border繪製三角形是什麼原理?事實上,寬度相等的border是以45度對接的,以下圖:瀏覽器
那麼沒有了上border就是以下圖:dom
再設置div的寬度爲0,就是以下圖:post
再設置div的高度爲0,以下圖:spa
最後設置左右border的顏色爲透明,以下圖:code
再來個動圖:orm
經過這種原理,咱們能夠作更多的圖形,好比五角星、六角星等,更多圖形請移步shapesofcss
.triangle { width: 30%; padding-bottom: 21.27%; /* = width / 1.41 */ position: relative; //劃重點 overflow:hidden; } .triangle: before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: #0079C6; //劃重點 transform-origin: 0 100%; transform: rotate(45deg); }
爲何是1.41,由於正方形的對角線長度是約等於1.414。
.triangle{ width:200px; height:200px; background:#fd5353; clip-path: polygon(50% 0, 0 100%, 100% 100%); }
clip-path不支持安卓4.4如下,其他均需使用瀏覽器前綴-webkit,caniuse
詳細請移步 clip-path