老师,三角形怎么变化成五角星啊,边框能移动吗
来源:2-13 编程练习
一心励志当码农
2021-04-29 11:24:18
<!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>Document</title>
<style>
.bg {
width: 300px;
height: 200px;
background-color: red;
margin: 40px auto;
}
.star1 {
width: 0;
height: 0;
border-top: 10px solid blue ;
border-right: 10px solid green;
border-bottom: 10px solid yellow;
border-left: 10px solid pink;
}
</style>
</head>
<body>
<div class="bg">
<div class="star1"></div>
<div class="star2"></div>
<div class="star3"></div>
<div class="star4"></div>
<div class="star5"></div>
</div>
</body>
</html>
1回答
同学你好,边框自身不能移动,但是三角形可以移动、旋转。一个边框不透明,其他三个边框透明,可以形成一个三角形;三个三角形通过旋转、移动位置,可以拼接成一个五角星:



以.star1为例,可以如下实现三角形(:before和:after各是一个三角形):

由于五角星形状都是相同的,所以.star1的形状,可以复用在其他几个三角形上,然后将其他几个三角形缩小并移动到合适位置即可:
<!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>Document</title>
<style>
.bg {
width: 300px;
height: 200px;
background-color: red;
margin: 40px auto;
}
.star {
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 35px solid yellow;
position: relative;
transform: rotate(35deg);
}
.star:before {
display: block;
content: '';
height: 0;
width: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 35px solid yellow;
position: absolute;
left: -52px;
top: 2px;
transform: rotate(287deg)
}
.star:after {
display: block;
content: '';
height: 0;
width: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 35px solid yellow;
position: absolute;
left: -52px;
top: 3px;
transform: rotate(215deg);
}
.star1{
transform: translate(0,48px);
}
.star2{
transform:translate(82px,-34px) rotate(-10deg) scale(0.4);
}
.star3{
transform:translate(117px,-34px) rotate(0deg) scale(0.4);
}
.star4{
transform:translate(115px,-19px) rotate(36deg) scale(0.4);
}
.star5{
transform:translate(81px,-21px) rotate(0deg) scale(0.4);
}
</style>
</head>
<body>
<div class="bg">
<div class="star star1"></div>
<div class="star star2"></div>
<div class="star star3"></div>
<div class="star star4"></div>
<div class="star star5"></div>
</div>
</body>
</html>祝学习愉快!
相似问题