• 边框是实现三角形的部分,边框实际上并不是一个直线,如果我们将四条边设置不同的颜色,将边框逐渐放大,可以得到每条边框都是一个梯形

  • 当分别取消边框的时候,发现下面几种情况:

    • 取消一条边的时候,与这条边相邻的两条边的接触部分会变成直的
    • 当仅有邻边时, 两个边会变成对分的三角
    • 当保留边没有其他接触时,极限情况所有东西都会消失
  • 通过上图的变化规则,利用旋转、隐藏,以及设置内容宽高等属性,就能够实现其他类型的三角形

  •  1
     2
     3  .obtuseB {
     4    border-width: 0px 40px 40px 40px;
     5    border-color: transparent transparent #4285f4 transparent;
     6  }
     7
     8  .obtuseL {
     9    border-width: 40px 0px 40px 40px;
    10    border-color: transparent transparent transparent #d9534f;
    11  }
    12
    13  .obtuseR {
    14    border-width: 40px 40px 40px 0px;
    15    border-color: transparent #42f4aa transparent transparent;
    16  }
    17
    18  .obtuseT {
    19    border-width: 40px 40px 0px 40px;
    20    border-color: #e8f442 transparent transparent transparent;
    21  }
    22
    23  
    24  .obtuseB.empty {
    25    position: relative;
    26    border-width: 0 40px 40px 40px;
    27    border-color: transparent transparent yellow transparent;
    28  }
    29  .obtuseB.empty::after {
    30    content: '';
    31    border-style: solid;
    32    border-width: 0 35px 35px 35px;
    33    border-color: transparent transparent #fff transparent;
    34    position: absolute;
    35    left: -35px;
    36    top: 3px
    37  }
    38
    39  .obtuseL.empty {
    40    position: relative;
    41    border-width: 40px 0 40px 40px;
    42    border-color: transparent transparent transparent #d9534f;
    43  }
    44  .obtuseL.empty::after {
    45    content: '';
    46    border-style: solid;
    47    border-width: 35px 0 35px 35px;
    48    border-color: transparent transparent transparent #fff;
    49    position: absolute;
    50    left: -38px;
    51    top: -35px
    52  }
    53
    54  .obtuseR.empty {
    55    position: relative;
    56    border-width: 40px 40px 40px 0;
    57    border-color: transparent #42f4aa transparent transparent;
    58  }
    59  .obtuseR.empty::after {
    60    content: '';
    61    border-style: solid;
    62    border-width: 35px 35px 35px 0;
    63    border-color: transparent #fff transparent transparent;
    64    position: absolute;
    65    left: 3px;
    66    top: -35px;
    67  }
    68
    69  .obtuseT.empty {
    70    position: relative;
    71    border-width: 40px 40px 0px 40px;
    72    border-color: #e8f442 transparent transparent transparent;
    73  }
    74  .obtuseT.empty::after {
    75    content: '';
    76    border-style: solid;
    77    border-width: 35px 35px 0px 35px;
    78    border-color: #fff transparent transparent transparent;
    79    position: absolute;
    80    left: -35px;
    81    top: -38px;
    82  }
    83
    84  
    85  .equalSidesB {
    86    border-width: 0px 40px 60px 40px;
    87    border-color: transparent transparent blue transparent;
    88  }
    89
    90  .equalSidesL {
    91    border-width: 40px 0px 40px 60px;
    92    border-color: transparent transparent transparent red;
    93  }
    94
    95  .equalSidesR {
    96    border-width: 40px 60px 40px 0px;
    97    border-color: transparent green transparent;
    98  }
    99
    100  .equalSidesT {
    101    border-width: 60px 40px 0px 40px;
    102    border-color: yellow transparent transparent transparent;
    103  }
    104
    105  
    106  .rightBL {
    107    border-width: 40px;
    108    border-color: transparent transparent blue blue;
    109  }
    110
    111  .rightTL {
    112    border-width: 40px;
    113    border-color: red transparent transparent red;
    114  }
    115
    116  .rightTR {
    117    border-width: 40px;
    118    border-color: green green transparent transparent;
    119  }
    120
    121  .rightBR {
    122    border-width: 40px;
    123    border-color: transparent yellow yellow transparent;
    124  }
    
  •  1// html
     2<h1>钝角三角形:</h1>
     3  <div class="container">
     4    <div class="obtuseB triangle"></div>
     5    <div class="obtuseL triangle"></div>
     6    <div class="obtuseR triangle"></div>
     7    <div class="obtuseT triangle"></div>
     8  </div>
     9
    10  <h1>钝角空心三角形:</h1>
    11  <div class="container">
    12    <div class="obtuseB empty triangle"></div>
    13    <div class="obtuseL empty triangle"></div>
    14    <div class="obtuseR empty triangle"></div>
    15    <div class="obtuseT empty triangle"></div>
    16  </div>
    17
    18  <h1>等边三角形:</h1>
    19  <div class="container">
    20    <div class="equalSidesB triangle"></div>
    21    <div class="equalSidesL triangle"></div>
    22    <div class="equalSidesR triangle"></div>
    23    <div class="equalSidesT triangle"></div>
    24  </div>
    25
    26  <h1>直角三角形:</h1>
    27  <div class="container">
    28    <div class="rightBL triangle"></div>
    29    <div class="rightTL triangle"></div>
    30    <div class="rightTR triangle"></div>
    31    <div class="rightBR triangle"></div>
    32  </div>
    
个人笔记记录 2021 ~ 2025