发现了一个特别有意思的技巧,利用CSS中border属性,可以绘制相应的图形,今天先介绍一下三角形。
.trangle1{
width: 0px;
height: 0px;
border-top: 100px solid red;
border-bottom: 100px solid transparent;
border-left: 100px solid transparent;
border-right: 100px solid transparent;
}
<div class="trangle1"></div>
效果如下:
原型是这样的:
.trangle{
width: 100px;
height: 100px;
border-top: 100px solid red;
border-bottom: 100px solid black;
border-left: 100px solid yellow;
border-right: 100px solid blue;
}
收缩一下高度:
.trangle{
width: 100px;
height: 0px;
border-top: 100px solid red;
border-bottom: 100px solid black;
border-left: 100px solid yellow;
border-right: 100px solid blue;
}
发现上下两部分已经接触到了,在收缩一下宽度:
.trangle{
width: 0px;
height: 0px;
border-top: 100px solid red;
border-bottom: 100px solid black;
border-left: 100px solid yellow;
border-right: 100px solid blue;
}
神奇的事情发生了,左右两部分也接触到了,而且四部分均已接触到,那么通过隐藏其他三个部分,就可以得到相应指向的等腰三角形了;正如最开始的三角形,尝试一下其他指向的三角形:
顶点朝上:
.trangle2{
width: 0px;
height: 0px;
border-top: 100px solid transparent;
border-bottom: 100px solid red;
border-left: 100px solid transparent;
border-right: 100px solid transparent;
}
顶点朝右:
.trangle3{
width: 0px;
height: 0px;
border-top: 100px solid transparent;
border-bottom: 100px solid transparent;
border-left: 100px solid red;
border-right: 100px solid transparent;
}
顶点朝右:
.trangle4{
width: 0px;
height: 0px;
border-top: 100px solid transparent;
border-bottom: 100px solid transparent;
border-left: 100px solid transparent;
border-right: 100px solid red;
}
通过隐藏其余两个,也可以实现直角三角形的绘制,例如:
.trangle5{
width: 0px;
height: 0px;
border-top: 100px solid red;
border-bottom: 100px solid transparent;
border-left: 100px solid transparent;
border-right: 100px solid red;
}