为啥我把通过伪元素添加的两个三角形旋转72度时,五角星的顶角无法完全重合,调成72.5度时看起来是重合的
来源:2-13 编程练习
慕姐5289795
2021-05-09 10:57:28
老师,帮我检查下有没有哪里有问题
问题描述:
还想问下为啥我把通过伪元素添加的两个三角形旋转72度时,五角星的顶角无法完全重合,调成72.5度时看起来是重合的?
相关代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>星星和国旗</title>
<style>
.box {
width: 600px;
height: 400px;
margin: 0 auto;
background-color: red;
}
.box .star {
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-top: 30px solid yellow;
position: relative;
}
.box .star::before {
content: '';
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-top: 30px solid yellow;
position: absolute;
top: -30px;
left: -50px;
transform: rotate(-72.5deg);
}
.box .star::after {
content: '';
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-top: 30px solid yellow;
position: absolute;
top: -30px;
left: -50px;
transform: rotate(72.5deg);
}
.box .star.big {
transform: translate(45px, 90px);
}
.box .star.little1 {
transform: scale(0.4) translate(340px, -10px) rotate(30deg);
}
.box .star.little2 {
transform: scale(0.4) translate(450px, 25px) rotate(45deg);
}
.box .star.little3 {
transform: scale(0.4) translate(450px, 95px) rotate(5deg);
}
.box .star.little4 {
transform: scale(0.4) translate(340px, 115px) rotate(40deg);
}
</style>
</head>
<body>
<div class="box">
<div class="star big"></div>
<div class="star little1"></div>
<div class="star little2"></div>
<div class="star little3"></div>
<div class="star little4"></div>
</div>
</body>
</html>
1回答
同学你好,当老师把网页放大时,通过伪元素添加的两个三角形旋转72.5度时也没有重合,如图
建议将旋转度数再调整一下,可以参考如下代码:
关于旋转角度的问题:
根据正五角星的数学特性,正五角星可以由特殊角度的三角形绕五角星外接圆圆心经过旋转72°与-72°而实现。满足正五角星的特征的特殊三角形角度依次为36°、36°、108°。
在使用css技术绘制三角形时,由于三角形内角的角度不是特别精确,所以导致旋转角度会有一些误差存在,上下调整到合适的旋转角度就可以了。
祝学习愉快!
相似问题