css三角形繪製方法總結

在作UI(頁面重構)的時候,免不了和各類小圖標打交道,這其中最多的應該是三角形以及箭頭,通常狀況下能夠經過僞類使用unicode解決大部分問題。css

如今咱們來總結下幾種使用css繪製三角形的方法,dom結構以下:html

<div class="triangle"></div>

最簡單最方便的辦法 background

代碼忽略

unicode

.triangle:after{
    display:block;
    content:"\25B2";
    color:"#fd5353";
    font-size:20px;
}

注意,僞類必須加上content屬性,不然不生效css3

unicode圖表web

border

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

使用border繪製三角形是什麼原理?事實上,寬度相等的border是以45度對接的,以下圖:瀏覽器

image

那麼沒有了上border就是以下圖:dom

image

再設置div的寬度爲0,就是以下圖:post

image

再設置div的高度爲0,以下圖:spa

image

最後設置左右border的顏色爲透明,以下圖:code

image

再來個動圖:orm

image

經過這種原理,咱們能夠作更多的圖形,好比五角星、六角星等,更多圖形請移步shapesofcss

使用css3 transform rotate

image

.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。

使用clip-path

.triangle{
    width:200px;
    height:200px;
    background:#fd5353;
    clip-path: polygon(50% 0, 0 100%, 100% 100%);
}

clip-path不支持安卓4.4如下,其他均需使用瀏覽器前綴-webkit,caniuse

詳細請移步 clip-path

原文

相關文章
相關標籤/搜索