css画三角形和几何图形,面试官不会说用css画个五角星出来

405 阅读3分钟

前言

本文内容是基础入门选手的示例。供娱乐参考。有其他图形可以补充。

image.png

前置知识

1、使用border-radius 属性可以制作精美的曲线图形

123
456

image.png 样式如下

 .container {
      background-color: black;
      display: flex;
      flex-wrap: wrap;
      align-content: space-around;
      justify-content: space-around;
      width: 700px;
      height:500px
    }
    .main{
      width: 200px;
      height:200px;
      background-color: chartreuse;
    }
    .box1{
      border-radius: 25% 10%;
    }
    .box2{
      border-radius: 10% 30% 50% 70%;
    }
    .box3{
      border-radius: 10% / 50%;
    }
    .box4{
      border-radius: 10px 100px / 120px;
    }
    .box5{
      border-radius: 50% 20% / 10% 40%;
    }
    .box6{
      border-radius: 25px;
    }

html部分

 <div class="container">
    <div class="main box1"></div>
    <div class="main box2"></div>
    <div class="main box3"></div>
    <div class="main box4"></div>
    <div class="main box5"></div>
    <div class="main box6"></div>
  </div>

官方文档补充border-radius

2、transparent不是属性是属性值 代表透明色,

就像是红色绿色武装色一样,是颜色值,

在做移动端时,按钮比较小,就可以给它添加一个透明色transparent ,增大可触面积

宽高为0的盒子,通过设置border大小 和颜色值为transparent 透明色就可以实现三角形绘制。

3、CSS transform属性

允许你旋转,缩放,倾斜或平移给定元素。这是通过修改CSS视觉格式化模型的坐标空间来实现的。

transform

下面开始画其他几何图形了

正方形

基础实例,后面的代码会只贴css部分。

<!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>
    body {
      background-color: black;
    }
    .square{
      height: 200px;
      width: 200px;
      background-color: aqua;
    }
  </style>
</head>

<body>
  <div class="square"></div>
</body>

</html>

image.png

三角形

分别为上下左右指向的等腰三角形 css

  .box{
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
    }

    .triangle {
      width: 0;
      height: 0;
    }
    .up {
      border-bottom: 200px solid indigo;
      border-right: 100px solid transparent;
      border-left: 100px solid transparent;
    }
    .down {
      border-top: 200px solid paleturquoise;
      border-right: 100px solid transparent;
      border-left: 100px solid transparent;
    }
    .left {
      border-right: 200px solid lemonchiffon;
      border-bottom: 100px solid transparent;
      border-top: 100px solid transparent;
    }
    .rigth {
      border-left: 200px solid green;
      border-bottom: 100px solid transparent;
      border-top: 100px solid transparent;
    }

html

   <div class="box">
    <div class="triangle up"></div>
    <div class="triangle down"></div>
    <div class="triangle left"></div>
    <div class="triangle rigth"></div>
  </div>

image.png

长方形

在上面正方形的实例中改宽度即可
css

 .rectangle{
      height: 200px;
      width: 400px;
      background-color: yellowgreen;
  }

html

  <div class="rectangle"></div>

image.png

梯形

css

    .trapezium {
        height: 0;
        width: 200px;
        border-bottom: 200px solid orange;
        border-left: 100px solid transparent;
        border-right: 100px solid transparent;
        background-color: black;
    }

html

  <div class="trapezium"></div>

image.png

菱形

css

/*下面注释部分为浏览器兼容前缀,如果你的浏览器不能正常显示,就要加前缀*/
 .diamand{
        width: 300px;
        height: 300px;
        background-color: plum;
        /* -moz-transform: rotate(-45deg);
        -webkit-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
        -o-transform: rotate(-45deg); */
        transform: rotate(-45deg);
        /* -moz-transform-origin: 0 100%;
        -webkit-transform-origin: 0 100%;
        -ms-transform-origin: 0 100%;
        -o-transform-origin: 0 100%; */
        transform-origin: 0 100%;
        margin: 150px 0 0 300px;
}

html

  <div class="diamand"></div>

image.png

平行四边形

css

    .parallelogram {
        width: 400px;
        height: 200px;
        background: #8734f7;
        -webkit-transform: skew(30deg);
        -moz-transform: skew(30deg);
        -o-transform: skew(30deg);
        transform: skew(30deg);
        margin-left: 20%;
    }

html

  <div class="parallelogram"></div>

image.png

圆形

css

  .cricle{
      height: 200px;
      width: 200px;
      background-color: #7FFFD4;
      border-radius: 100%;
  }

html

  <div class="cricle"></div>

image.png

椭圆

css

  .oval {
        height: 200px;
        width: 400px;
        background-color: deepskyblue;
        border: none;
        border-radius: 50%;
  }
  /* 或者这样*/
  .oval {
        height: 200px;
        width: 400px;
        background-color: deepskyblue;
        -moz-border-radius: 400px/200px;  /* 浏览器兼容 */
        -webkit-border-radius: 400px/200px; /* 浏览器兼容 */
        border-radius: 400px/200px;
   }

html

  <div class="oval"></div>

image.png

五角星

css

   #star {
      width: 0;
      height: 0;
      margin: 100px 10px;
      color: red;
      position: relative;
      display: block;
      border-right: 100px solid transparent;
      border-bottom: 70px solid red;
      border-left: 100px solid transparent;
      -moz-transform: rotate(35deg);
      -webkit-transform: rotate(35deg);
      -ms-transform: rotate(35deg);
      -o-transform: rotate(35deg);
      /* background-color: black; */
    }

    #star:before {
      height: 0;
      width: 0;
      position: absolute;
      display: block;
      top: -45px;
      left: -65px;
      border-bottom: 80px solid red;
      border-left: 30px solid transparent;
      border-right: 30px solid transparent;
      content: '';
      -webkit-transform: rotate(-35deg);
      -moz-transform: rotate(-35deg);
      -ms-transform: rotate(-35deg);
      -o-transform: rotate(-35deg);
      /* background-color: black; */
    }

    #star:after {
      content: '';
      width: 0;
      height: 0;
      position: absolute;
      display: block;
      top: 3px;
      left: -105px;
      color: red;
      border-right: 100px solid transparent;
      border-bottom: 70px solid red;
      border-left: 100px solid transparent;
      -webkit-transform: rotate(-70deg);
      -moz-transform: rotate(-70deg);
      -ms-transform: rotate(-70deg);
      -o-transform: rotate(-70deg);
      /* background-color: black; */
    }

html

<div id="star"></div>

image.png

那如何用css做个五星红旗呢?一起来实现吧。

总结

bonbon-nft-auction-platforms-art-games-video-music.png