本文操作环境:windows7系统、HTML5&&CSS3版、Dell G3电脑。
css怎么实现六边形?
最近在写一个蜂窝式布局,所以研究了一下六边形的实现原理
实现六边形的俩种方式:
方式一: 一个长方形+两个三角形
首先我们要先了解一下border
每个border之间是成45度,利用这点我们可以做出来三角形
<p class="triangle"></p>/*css片段*/.triangle{ width: 0; height: 0; border-bottom: 50px solid red; border-left: 86px solid transparent; border-right: 86px solid transparent; }
登录后复制
上面代码可以的到一个顶角为120度的等腰三角形
我们采取制作六边形的方式就是将3个p组合在一起,上下为120度的等腰三角形,中间为长方形(注意:border-top/border-bottom决定的是三角形的高)
下面我们来实现六边形
<p class="top-triangle"></p> <p class="center"></p> <p class="bottom-triangle"></p> /*css片段*/ .top-triangle{ width: 0; height: 0; border-bottom: 50px solid red; border-left: 86px solid transparent; border-right: 86px solid transparent; } .center{ width: 172px; height: 100px; background: red; } .bottom-triangle{ width: 0; height: 0; border-top: 50px solid red; border-left: 86px solid transparent; border-right: 86px solid transparent; }
登录后复制
由上面代码我们就可以得到一个正六变形
方式二: 3个长方形旋转不同角度得到正六边形
关键点: overflow: hidden;
transform: rotate()的使用
<p class="six"> <p class="child"> <p class="child_child"></p> </p></p>/*css片段*/.six,.child,.child_child{ width: 100px; height: 150px; overflow: hidden; }.six{ -webkit-transform: rotate(120deg); -o-transform: rotate(120deg); -ms-transform: rotate(120deg); -moz-transform: rotate(120deg); transform: rotate(120deg); }.child{ -webkit-transform: rotate(-60deg); -o-transform: rotate(-60deg); -ms-transform: rotate(-60deg); -moz-transform: rotate(-60deg); transform: rotate(-60deg); }.child_child{ background: red; -webkit-transform: rotate(-60deg); -o-transform: rotate(-60deg); -ms-transform: rotate(-60deg); -moz-transform: rotate(-60deg); transform: rotate(-60deg); }
登录后复制
可以为最里面的p加背景或者图片,外面的俩个p不要加颜色,但是这种方式创建的六边形没有办法添加文字,执行上面代码可以得到下图:
【推荐学习:《css视频教程》】
以上就是css怎么实现六边形的详细内容,更多请关注Work网其它相关文章!