用css制作三角形,主要是利用css元素给“盒模型”设置边框得到的。
上图,上边框和做边框,以及上边框和右边框的交合处,浏览器会按照直角的二分之一处绘制交合线。这是“盒模型”有宽和高时候的效果。我们假设一下,如果把宽和高设置成0px,同时让边框的宽度更宽一点情况会怎样那?css代码如下:
.tip1{ width:0px; height:0px; border-width:20px; border-style:solid; border-color:#f60 #f00 #0f0 #00f; overflow:hidden; }
效果图如下:
当把“盒模型”的宽和高都设置成0px时,“盒模型”的每条边都变成了三角形,那如果我们需要一个向下的三角形,是不是把左、右、下的边设置成透明就可以了那?我们看一下效果:
.tip2{ width:0px; height:0px; border-width:20px; border-style:solid; border-color:#f60 transparent transparent transparent; overflow:hidden; }
是的,我们得到了向下的三角形了,只不过这个三角形比较扁平,不太美观。我们需要调整一下。既然是向下的三角形,我们可以让它的下边框的宽度为0,只设置上边框,来控制整个三角形的高度,设置左右边框来控制三角形的宽度。代码修改如下:
.tip3{ width:0px; height:0px; border-width:20px 10px 0px 10px; border-style:solid; border-color:#f60 transparent transparent transparent; overflow:hidden; }
效果如下:
现在看起来好多了。同理我们也可以根据需求制作朝左、右、上的三角行了,大家可以回去试一下。
附:结合css3三角形的应用,代码如下:
<p class="box">哈哈我是测试代码</p>
.box{ width:800px; padding:10px; min-height:40px; background:#a6dadc; position:relative; } .box::after{ content:""; display:block; width:0px; height:0px; border-width:10px 20px 10px 0px; border-style:solid; border-color:transparent #a6dadc transparent transparent; position:absolute; left:-20px; top:10px; }
效果图如下: