如何用css畫出三角形

在平時的開發中我們經常要使用到小三角wKioL1eY0AHDFAYiAAAAt4jzcOc743.png-wh_50,我們除了使用切出來的圖案,還有其他方式來實現這個小三角嗎?答案是肯定的,只要通過border這個css屬性就可以簡單實現啦。


下面讓我們一步步來看下是如何實現的。


  1. 首先我們來看如下代碼

<style type="text/css">
    .triangle_test{
        width:50px;
        height: 50px;
        border-width: 15px;
        border-color: red green black blue;
        border-style: solid;
}
    .triangle_test1{
        width:100px;
        height:100px;
        border-width: 15px;
        border-color: red green black blue;
        border-style: solid;
}
</style>
<body>
    <div class="triangle_test"></div>
    <p>
        <span class="triangle_test1"></span>
        <s class="triangle_test1"></s>
    </p>
</body>

顯示結果:

 wKiom1eY2tDQlD5SAAACRQLNMgw239.png-wh_50   

 wKioL1eY3X2wkPrlAAACH7SJ_GM292.png-wh_50

但是如果我們把width 和heigth設置成爲0那又變成啥了?

wKiom1eY3LbSlwLlAAABhubu4Bs336.png-wh_50

wKioL1eY3X2wkPrlAAACH7SJ_GM292.png-wh_50

看圖可知,對於行內元素width和heigth並不起效果的,所以在triangle_test1中我們需要使用到

font-size:0這個css屬性來設置行內元素的高度.

.triangle_test1{
        width:0;
        height:0;
        border-width: 15px;
        border-color: red green black blue;
        border-style: solid;
        font-size:0;
}

wKioL1eY322weZySAAAB88neZO8870.png-wh_50

到這一步我們就應該知道三角形該怎麼實現了吧。

有人說那我只設置border-top的屬性,只讓踏一個顯示不就好了麼?真的是這樣嗎?

然而事實是這樣並不能實現。這裏通過一個小例子來解釋

1.1 設置相鄰邊框可見

.triangle_1{
    width:100px;
    height: 100px;
    border-width:20px;/* 20px 0 0;*/
    border-style: solid;
    border-color: red green blue black;
}

wKioL1eY4MfC77I4AAADY6qxhWI911.png-wh_50  顯示出來是這樣子的,紅色邊框顯示爲梯形

.triangle_1{
    width:100px;
    height: 100px;
    border-width:20px 20px 0 0;/*這裏有修改*/
    border-style: solid;
    border-color: red green blue black;
}

wKiom1eY4TuSlHCwAAACKxueDf4976.png-wh_50看到了嗎,紅色並不是顯示爲梯形,黑色不顯示的話,他會把部分紅色區域覆蓋,規律一看就知。


所以使另外三邊變爲透明即可實現小三角。


2.設置邊框顏色透明度

.triangle2{/*兼容各個瀏覽器*/
    width: 0;
    height: 0;
    border-width: 10px;
    border-style:solid; /*dashed dashed dashed/*
    border-color: red transparent transparent transparent;

    font-size:0;
}

但是這個就會導致不能兼容ie6以下的瀏覽器,因爲不識別transparent屬性。


所以這裏用到了一個ie6以下瀏覽器的特點就是border-style:dashed這個屬性

可以參考文章 http://it.chinawin.net/application/article-180df.html


所以最終的結果爲

.triangle2{ /*兼容各個瀏覽器*/
    width: 0;
    height: 0;
    border-width: 10px;
    border-style:solid dashed dashed dashed;
    border-color: red transparent transparent transparent;
    font-size:0;
}

--------------------------------------------------------------------------------

以上只有上下左右三角的畫法,接下來我們簡單說下左上角三角的畫法

這裏就可以用到上述文中1.1中的樣式

.triangle_1{
    width:0;//將width和heigth設置爲0
    height: 0;
    border-width:20px 20px 0 0;
    border-style: solid;
    border-color: red green blue black;
}

wKiom1eY5Q7i-F2pAAAAzP2F4Qk769.png-wh_50這樣我們只要設置border-style:solid dashed dashed dashed;

border-color:red transparent transparent transparent;即可得到紅色的左上箭頭

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章