首先我们先来执行一下下面的CSS代码:
.sanj {
width: 0px;
height: 0px;
border-top: 20px solid red;
border-right: 20px solid yellow;
border-bottom: 20px solid blue;
border-left: 20px solid green;
}
<div class="sanj"></div>
这是一个把sanj类的盒子设置上、右、下、左设置一个20px的不同颜色的边框线的CSS。
最终执行效果为由4个三角形组成的一个20px的正方形盒子:
那么假设我们只留下boder-top的红色,其他地方改成透明颜色是不是就用CSS完成了一个三角形的制作?
实践:
我们在建一个class="sanj2"的盒子,然后先做一个透明(transparent)的边框,然后在吧把上边的边框色颜色设置为红色。
<div class="sanj2"></div>
.sanj2 {
width: 0;
height: 0;
border: 20px solid transparent;
border-top-color: red;
}
那么效果就是只有一个红色的上面的三角形:
微信聊天案例:
首先写写一个class="chat"的大盒子,然后把盒子样式都设置一下。
.chat {
width: 177px;
height: 36px;
line-height: 36px;
padding: 10px;
position: relative;
background-color: rgb(149,236,105);
border-radius: 5px;
}
<div class="chat">浏览器搜索造梦空间论坛</div>
因为等等定位那个小三角形需要用到绝对定位,所以我们的父级盒子需要用相对定位来完成。
然后在盒子里面加上一个span做右边的三角形。
<span class="chatj"></span>
按照我们刚刚讲得来设置一个左边的三角形。
.chatj {
position: absolute;
right: -25px;
border: 15px solid transparent;
border-left: 15px solid rgb(149,236,105);
}
完整源码: