老师,三角形怎么变化成五角星啊,边框能移动吗

来源: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回答

好帮手慕久久

2021-04-29

同学你好,边框自身不能移动,但是三角形可以移动、旋转。一个边框不透明,其他三个边框透明,可以形成一个三角形;三个三角形通过旋转、移动位置,可以拼接成一个五角星:

http://img.mukewang.com/climg/6083e860099c062c05600567.jpg

http://img.mukewang.com/climg/6083e880094ec23005880538.jpg

http://img.mukewang.com/climg/608a29d509292e7c06410687.jpg


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

http://img.mukewang.com/climg/608a2aa609ee7a1106110896.jpg

由于五角星形状都是相同的,所以.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>

祝学习愉快!

0

0 学习 · 15276 问题

查看课程