将以下代码直接运行即可看到各种效果以及实现原理!!!
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>三角形变换</title>
<style>
.zuoyouxia{
width: 0;
height: 0;
border-bottom: 100px solid red;
border-left: 50px solid gray;
border-right: 50px solid green;
}
.zfx{
width: 0px;
height: 0px;
border-top:50px solid red;
border-bottom: 50px solid green;
border-right: 50px solid pink;
border-left: 50px solid lightblue;
}
.shangzuo{
width: 0px;
height: 0px;
border-top:50px solid red;
border-left: 50px solid lightblue;
}
.touming{
width: 0;
height: 0;
border-top: 50px solid red;
border-left: 50px solid red;
border-bottom: 50px solid transparent;
border-right: 50px solid transparent;
}
.sixstar{
width: 0;
height: 0;
border-right: 50px solid transparent;
border-left: 50px solid transparent;
border-bottom: 100px solid red;
position: relative;
}
.sixstar:after{
width: 0;
height: 0;
border-top:100px solid red;
border-right: 50px solid transparent;
border-left: 50px solid transparent;
position: absolute;
top:30px;
left: -50px;
content: "";
}
.fivestar{
width: 0;
height: 0;
border-bottom: 70px solid #FF0000;
border-right: 100px solid transparent;
border-left: 100px solid transparent;
position: relative;
transform: rotate(35deg);
}
.fivestar:before{
width: 0;
height: 0;
border-bottom: 80px solid green;
border-right: 30px solid transparent;
border-left: 30px solid transparent;
content: "";
position: absolute;
transform: rotate(-35deg);
top:-45px;
left: -65px;
}
.fivestar:after{
width: 0;
height: 0;
border-bottom: 70px solid blue;
border-right: 100px solid transparent;
border-left: 100px solid transparent;
position: absolute;
transform: rotate(-70deg);
content: "";
top:3px;
left: -105px;
}
.shidouren{
width: 0;
height: 0;
border-top:60px solid red;
border-left: 60px solid red;
border-bottom: 60px solid red;
border-right: 60px solid transparent;
border-top-left-radius: 60px;
border-top-right-radius: 60px;
border-bottom-left-radius: 60px;
border-bottom-right-radius: 60px;
}
.main{
transform: rotate(45deg);
position: absolute;
margin-top:50px;
}
.disc1{
width: 100px;
height: 100px;
border:1px solid red;
background: red;
border-radius: 50%;
float: left;
}
.disc2{
width: 100px;
height: 100px;
border:1px solid red;
border-radius: 50%;
float: left;
background: red;
position: relative;
right: 52px;
top:-50px;
}
.square{
width: 100px;
height: 100px;
background: red;
float: left;
position: relative;
right: 152px;
top:2px;
}
</style>
</head>
<body>
<h3>当3个边框都设置的时候</h3>
<!--当宽高都为0时,左右下设置边框100,50,50,也是一个正方形,当数量不相等时,依据多数-->
<div class="zuoyouxia"></div>
<br>
<!--当宽高都为0时,设置边框都为20px,就是一个正方形,并且宽度变为原来的两倍-->
<h3>当4个边框都设置的时候,边框才会是两倍</h3>
<div class="zfx"></div><Br>
<!--当宽高都为0时,上,左设置边框都为20px,宽度就是边框的宽度,也是一个正方形-->
<h3>只设置两边的时候</h3>
<div class="shangzuo"></div><Br>
<!--当宽高都为0时,上下左右设置边框都为50px,并且右下为透明,就是一个直角三角形-->
<h3>当4个边框都设置的时候,边框才会是两倍,这里透明了右下</h3>
<div class="touming"></div>
<h3>六角形:一个向上三角形和一个向下三角形,通过top通过left移动重叠形成</h3>
<div class="sixstar"></div><Br>
<h3>五角星:第一个红色通过旋转35度,第二个绿色旋转-35度,第三个蓝色旋转-70度</h3>
<div class="fivestar"></div><Br>
<h3>食豆人:上下左右,右为透明,并且设置弧度</h3>
<div class="shidouren"></div><Br>
<h3>爱心:两个圆形和一个正方形</h3>
<div class="main">
<div class="disc1"></div>
<div class="disc2"></div>
<div class="square"></div>
</div>
</body>
</html>