2-13,麻烦老师检查!
来源:2-13 编程练习
脑袋瓜瓜嗡嗡的
2022-05-09 20:35: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>
*{
margin: 0;
padding: 0;
}
/* 国旗背景 */
.bg{
width: 1200px;
height: 800px;
background-color: red;
position: relative;
}
/* 绘制五角星 */
.start_part{
position: absolute;
width: 0;
height: 0;
border: 50px solid transparent;
border-top-color: yellow;
}
.s1{
transform: rotate(67.5deg);
top: 35px;
left: 107px;
}
.s2{
transform: rotate(139.5deg);
top: 15px;
left: 138px;
}
.s3{
transform: rotate(211.5deg);
top: 38px;
left: 163px;
}
.s4{
transform: rotate(283.5deg);
top: 70px;
left: 151px;
}
.s5{
transform: rotate(355.5deg);
top: 67px;
left: 115px;
}
/* 第一颗五角星 */
.start1{
position: absolute;
top: 97px;
left: -25px;
}
/* 第二颗五角星 */
.start2{
position: absolute;
top: 66px;
left: 188px;
transform: scale(0.4) rotate(-30deg);
}
/* 第三颗五角星 */
.start3{
position: absolute;
top: 123px;
left: 267px;
transform: scale(0.4) rotate(-15deg);
}
/* 第四颗五角星 */
.start4{
position: absolute;
top: 202px;
left: 283px;
transform: scale(0.4) rotate(15deg);
}
/* 第五颗五角星 */
.start5{
position: absolute;
top: 268px;
left: 225px;
transform: scale(0.4) rotate(30deg);
}
</style>
</head>
<body>
<div class="bg">
<div class="start1">
<div class="start_part s1"></div>
<div class="start_part s2"></div>
<div class="start_part s3"></div>
<div class="start_part s4"></div>
<div class="start_part s5"></div>
</div>
<div class="start2">
<div class="start_part s1"></div>
<div class="start_part s2"></div>
<div class="start_part s3"></div>
<div class="start_part s4"></div>
<div class="start_part s5"></div>
</div>
<div class="start3">
<div class="start_part s1"></div>
<div class="start_part s2"></div>
<div class="start_part s3"></div>
<div class="start_part s4"></div>
<div class="start_part s5"></div>
</div>
<div class="start4">
<div class="start_part s1"></div>
<div class="start_part s2"></div>
<div class="start_part s3"></div>
<div class="start_part s4"></div>
<div class="start_part s5"></div>
</div>
<div class="start5">
<div class="start_part s1"></div>
<div class="start_part s2"></div>
<div class="start_part s3"></div>
<div class="start_part s4"></div>
<div class="start_part s5"></div>
</div>
</div>
</body>
</html>1回答
同学你好,思路是对的,就是实际效果不太好看。使用5个三角形拼成五角星时,各个三角形的旋转角度、位置调整起来太麻烦了。老师建议用三个三角形实现,这样调整起来相对简单些:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>2-3</title>
<style type="text/css">
/* 此处写代码*/
* {
margin: 0;
padding: 0;
}
/*旗子底部 */
.container {
width: 600px;
height: 400px;
margin: 0 auto;
background: red;
overflow: hidden;
}
/* 调整大五角星的位置 */
.inner {
margin-left: 50px;
margin-top: 80px;
}
/* 构成五角星的 第一个三角形 */
.inner div {
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 35px solid yellow;
position: relative;
transform: rotate(35deg);
}
/* 构成五角星的 第二个三角形 */
.inner div:before {
display: block;
content: '';
height: 0;
width: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 35px solid green;
position: absolute;
left: -52px;
top: 2px;
opacity: 0.5;
transform: rotate(287deg)
}
/* 构成五角星的 第三个三角形 */
.inner div:after {
display: block;
content: '';
height: 0;
width: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 35px solid blue;
position: absolute;
left: -52px;
top: 3px;
opacity: 0.5;
transform: rotate(215deg);
}
/* 4个小五角星,移动到合适位置 */
.inner .smallStar:nth-child(2) {
transform: translate(82px, -94px) rotate(-10deg) scale(0.4);
}
.inner .smallStar:nth-child(3) {
transform: translate(117px, -87px) rotate(0deg) scale(0.4);
}
.inner .smallStar:nth-child(4) {
transform: translate(115px, -70px) rotate(36deg) scale(0.4);
}
.inner .smallStar:nth-child(5) {
transform: translate(81px, -63px) rotate(0deg) scale(0.4);
}
</style>
</head>
<body>
<!-- 此处写代码 -->
<div class="container">
<div class="inner">
<div class="bigStar"></div>
<div class="smallStar"></div>
<div class="smallStar"></div>
<div class="smallStar"></div>
<div class="smallStar"></div>
</div>
</div>
</body>
</html>知道实现思路就行,不用纠结具体数值。
祝学习愉快!
相似问题