本文使用css来实现各个朝向的等腰三角形,涉及知识点border,且通过transform中的rotate来改箭头的朝向。来看一下效果吧。

想用一个div元素的boder来实现一下等腰(20px)三角形,需要了解border的“魔幻”之处
设置div边框20px,宽20px,高20px)

1 2 3 4 5 6
| .trangle { width: 20px; height: 20px; border: 20px solid; border-color: red green blue orange; }
|
设置边框20px,宽0,高0)

1 2 3 4 5 6
| .trangle { width: 20px; height: 20px; border: 20px solid; border-color: red green blue orange; }
|
根据所需保留对应的边框,并可以通过旋转来实现其他角度的三角行
html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <div class="trangle-group"> <div class="trangle" direction="top"> </div> <div class="trangle" direction="right"> </div> <div class="trangle" direction="bottom"> </div> <div class="trangle" direction="left"> </div> <div class="trangle" direction="top-left"> </div> <div class="trangle" direction="top-right"> </div> <div class="trangle" direction="bottom-left"> </div> <div class="trangle" direction="bottom-right"> </div> </div>
|
css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| .trangle { width: 0; height: 0; border: 20px solid transparent; }
.trangle[direction=top] { border-bottom-color: red; border-top-width: 0; }
.trangle[direction=top-left], .trangle[direction=left-top] { border-top-color: red; border-bottom-width: 0; -webkit-transform: rotate(135deg); transform: rotate(135deg); }
.trangle[direction=right] { border-left-color: red; border-right-width: 0; }
.trangle[direction=bottom] { border-top-color: red; border-bottom-width: 0; }
.trangle[direction=left] { border-right-color: red; border-left-width: 0; }
.trangle[direction=top-left], .trangle[direction=left-top] { border-top-color: red; border-bottom-width: 0; -webkit-transform: rotate(135deg); transform: rotate(135deg); }
.trangle[direction=top-right], .trangle[direction=left-right] { border-top-color: red; border-bottom-width: 0; -webkit-transform: rotate(225deg); transform: rotate(225deg); }
.trangle[direction=bottom-left], .trangle[direction=left-bottom] { border-bottom-color: red; border-top-width: 0; -webkit-transform: rotate(225deg); transform: rotate(225deg); }
.trangle[direction=bottom-right], .trangle[direction=right-bottom] { border-bottom-color: red; border-top-width: 0; -webkit-transform: rotate(135deg); transform: rotate(135deg); }
|