首先原理是:
请一步一步粘贴代码,慢慢品味。其实,很简单。。。
1.首先三角形的前身是一个普通的矩形-正方形||长方形?ok!
<div class='box'></div>
.box{
border:80px solid red;
}
没错,使用边框属性,我们得到了一个长方形。
然后,我们弄些三角出来。
.box{
0;
border:80px solid transparent;
border-left:100px solid black;
}
<div class='box'></div>
你i想要哪个方向的三角,就在border上取哪个方向的就可以了。
原理:
- 每一个对角是一个三角形。
- 盒模型默认宽是100%;所以要归0;
- boredr为透明,方便我们只给所需要方向的三角着色。
基于这个原理,在做一些复杂的时候,我们可以配合伪类元素生成。下面是一些好玩又简单的代码示例。
1.1旗帜:

.flag {
0;
height: 0;
border: 20px solid #FF6600;
border-top- 40px;
border-bottom-color: transparent;
border-bottom- 20px;
}
<div class='flag'></div>
1.2复杂的丝带~
(虽然丑……但是技术才是重点!!!!)
<!--第一,绘制一个长方形-主体-->
.ribbon {
margin:auto;
position: relative;
10rem;
height: 3rem;
padding: 0.7rem 0;
font-size: 1.6rem !important;
color: #fff;
text-align: center;
background: red;
box-shadow:1px 1px 0 rgba(255, 233, 200, 0.5);
}
<!--2.两侧的小翅膀-->
.ribbon:before,
.ribbon:after {
content: "";
position: absolute;
display: block;
bottom: -0.6rem;
border: 1.5rem solid gold;
z-index: -1;
}
.ribbon:before {
left: -2.4rem;
border-right- 1.5rem;
border-left-color: transparent;
box-shadow: 1px 1px 0 rgba(176, 102, 166, 0.8);
}
.ribbon:after {
right: -2.4rem;
border-left- 1.5rem;
border-right-color: transparent;
box-shadow: 0 1px 0 rgba(176, 102, 166, 0.8);
}
<!--3.还有两个内侧的小阴影!-->
.ribbon .ribbon-content:before,
.ribbon .ribbon-content:after {
content: "";
position: absolute;
display: block;
border-style: solid;
border-color: #bf004c transparent transparent transparent;
bottom: -0.6rem;
}
.ribbon .ribbon-content:before {
left: 1px;
border- 0.6rem 0 0 0.6rem;
}
.ribbon .ribbon-content:after {
right: 0;
border- 0.6rem 0.6rem 0 0;
}
<div class="ribbon">
<span class="ribbon-content">金卡会员</span>
</div>