#triangle-up {
  width: 0;
  height: 0;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
  border-bottom: 100px solid red;
}
<div id="triangle-up"></div>

以上代码可以输出一个三角形,调整左右/底部宽度可以让三角形变形

它背后是什么呢?

一个普通的盒子

一个没有上边框的盒子 (border-top=0,不写也是0)

 



再让它的宽高都为0

 

剩下的底边框和左右边框就撑起来一个三角形

 


再来看这个例子

.triangle {
    border-color: yellow blue red green;
    border-style: solid;
    border-width: 200px 200px 200px 200px;
    height: 0px;
    width: 0px;
}


去掉顶部边框后

.triangle {
    border-color: yellow blue red green;
    border-style: solid;
    border-width: 0px 200px 200px 200px;
    height: 0px;
    width: 0px;
}

再让左右边框变透明

.triangle {
    border-color: transparent transparent red transparent;
    border-style: solid;
    border-width: 0px 200px 200px 200px;
    height: 0px;
    width: 0px;
}

 

 

注意黑色部分应该是透明的白色的。因为编辑器的原因,所以有个bug