如何用css 绘制边长相等且有边框的六边形

首先,我的思路是六边形由一个长方形,两个三角形拼成。

css绘制有边框的三角形,比如你的六边形需要有白色的边框,红色的背景色,那么你的三角形则有白色的大三角形和红色的小三角形重叠在一起,组成一个白色边框的三角形。

之前用before ,after写完无边框的六边形,写有边框的六边形只好推翻这种方法重新写了。。。

我的项目是几个六边形,不规则的摆放,需要定位,给六边形添加hover效果。

最终,六边形画出来之后,PSD是1920的大小,算是高分辨率了,无法自适应不同分辨率的屏幕,还得用rem,我用的是hotcss,不需要自己计算px与rem之间的转换? 实现了自适应,hotcss的使用详情请点击这个链接:?点击打开链接。

<div?class="nav">

<div?class="hex-wrap?clearfix?hex-wrap1">

<div?class="hex-border-left?hex-border-left1?pull-left">

<div?class="hex-left"></div>

</div>

<div?class="fore?fore1?pull-left"><a?href="javascript:?void(0);">农业大数据</a></div>

<div?class="hex-border-right?hex-border-right1?pull-left">

<div?class="hex-right"></div>

</div>

</div>

<div?class="hex-wrap?clearfix?hex-wrap2">

<div?class="hex-border-left?hex-border-left2?pull-left">

<div?class="hex-left"></div>

</div>

<div?class="fore?fore2?pull-left"><a?href="javascript:?void(0);">物联监管</a></div>

<div?class="hex-border-right?hex-border-right2?pull-left">

<div?class="hex-right"></div>

</div>

</div>

<div?class="hex-wrap?clearfix?hex-wrap3">

<div?class="hex-border-left?hex-border-left3?pull-left">

<div?class="hex-left"></div>

</div>

<div?class="fore?fore3?pull-left"><a?href="javascript:?void(0);">畜牧</a></div>

<div?class="hex-border-right?hex-border-right3?pull-left">

<div?class="hex-right"></div>

</div>

</div>

<div?class="hex-wrap?clearfix?hex-wrap4">

<div?class="hex-border-left?hex-border-left4?pull-left">

<div?class="hex-left"></div>

</div>

<div?class="fore?fore4?pull-left"><a?href="javascript:?void(0);">质量溯源</a></div>

<div?class="hex-border-right?hex-border-right4?pull-left">

<div?class="hex-right"></div>

</div>

</div>

<div?class="hex-wrap?clearfix?hex-wrap5">

<div?class="hex-border-left?hex-border-left5?pull-left">

<div?class="hex-left"></div>

</div>

<div?class="fore?fore5?pull-left"><a?href="javascript:?void(0);">病虫害监测</a></div>

<div?class="hex-border-right?hex-border-right5?pull-left">

<div?class="hex-right"></div>

</div>

</div>

<div?class="hex-wrap?clearfix?hex-wrap6">

<div?class="hex-border-left?hex-border-left6?pull-left">

<div?class="hex-left"></div>

</div>

<div?class="fore?fore6?pull-left"><a?href="javascript:?void(0);">水产</a></div>

<div?class="hex-border-right?hex-border-right6?pull-left">

<div?class="hex-right"></div>

</div>

</div>

<div?class="hex-wrap?clearfix?hex-wrap7">

<div?class="hex-border-left?hex-border-left7?pull-left">

<div?class="hex-left"></div>

</div>

<div?class="fore?fore7?pull-left"><a?href="javascript:?void(0);">休闲旅游</a></div>

<div?class="hex-border-right?hex-border-right7?pull-left">

<div?class="hex-right"></div>

</div>

</div>

<div?class="hex-wrap?clearfix?hex-wrap8">

<div?class="hex-border-left?hex-border-left8?pull-left">

<div?class="hex-left"></div>

</div>

<div?class="fore?fore8?pull-left"><a?href="javascript:?void(0);">电子商务</a></div>

<div?class="hex-border-right?hex-border-right8?pull-left">

<div?class="hex-right"></div>

</div>

</div>

</div>

css代码:

[css]?view?plain?copy?print?

/*?8个导航的样式?*/

.content?.nav?{

float:?right;

width:?750px;

position:?relative;

}

.hex-wrap?{

position:?absolute;

cursor:?pointer;

}

.hex-wrap1?{

left:?170px;

top:?0px;

}

.hex-wrap2?{

left:?90px;

top:?148px;

}

.hex-wrap3?{

left:?0px;

top:?296px;

}

.hex-wrap4?{

left:?300px;

top:?94px;

}

.hex-wrap5?{

left:?215px;

top:?242px;

}

.hex-wrap6?{

left:?516px;

top:?27px;

}

.hex-wrap7?{

left:?435px;

top:?175px;

}

.hex-wrap8?{

left:?348px;

top:?323px;

}

.fore?{

/*绘制一个宽80px,高136px?的长方形*/

width:?80px;

height:?136px;

text-align:?center;

position:?relative;

font-size:?24px;

border-top:?1px?solid?#dfe8f2;

border-bottom:?1px?solid?#dfe8f2;

}

.hex-border-left?{

position:?relative;

content:?"";

width:?0;

height:?0;

border-top:?69px?solid?transparent;

border-bottom:?69px?solid?transparent;

}

.hex-left?{

/*左边的三角形*/

content:?"";

width:?0;

height:?0;

border-top:?68px?solid?transparent;

border-bottom:?68px?solid?transparent;

position:?absolute;

left:?1px;

top:?-68px;

}

.hex-border-right?{

position:?relative;

content:?"";

width:?0;

height:?0;

border-top:?69px?solid?transparent;

border-bottom:?69px?solid?transparent;

}

.hex-right?{

/*右边的三角形*/

content:?"";

width:?0;

height:?0;

border-top:?68px?solid?transparent;

border-bottom:?68px?solid?transparent;

position:?absolute;

right:?1px;

top:?-68px;

}

.fore?a?{

color:?#fff;

text-decoration:?none;

cursor:?pointer;

position:?absolute;

white-space:?nowrap;

width:?150px;

text-align:?center;

display:?block;

top:?50px;

left:?-35px;

z-index:?99;

}

.hex-border-left?{

border-right:?41px?solid?#fff;

}

.hex-border-right?{

border-left:?41px?solid?#fff;

}

.fore1?{

background-color:?#3498db;

}

.hex-border-left1?.hex-left?{

border-right:?40px?solid?#3498db;

}

.hex-border-right1?.hex-right?{

border-left:?40px?solid?#3498db;

}

.fore2?{

background-color:?#1abc9c;

}

.hex-border-left2?.hex-left?{

border-right:?40px?solid?#1abc9c;

}

.hex-border-right2?.hex-right?{

border-left:?40px?solid?#1abc9c;

}

.fore3?{

background-color:?#f1c40f;

}

.hex-border-left3?.hex-left?{

border-right:?40px?solid?#f1c40f;

}

.hex-border-right3?.hex-right?{

border-left:?40px?solid?#f1c40f;

}

.fore4?{

background-color:?#9b59b6;

}

.hex-border-left4?.hex-left?{

border-right:?40px?solid?#9b59b6;

}

.hex-border-right4?.hex-right?{

border-left:?40px?solid?#9b59b6;

}

.fore5?{

background-color:?#95a5a6;

}

.hex-border-left5?.hex-left?{

border-right:?40px?solid?#95a5a6;

}

.hex-border-right5?.hex-right?{

border-left:?40px?solid?#95a5a6;

}

.fore6?{

background-color:?#e74c3c;

}

.hex-border-left6?.hex-left?{

border-right:?40px?solid?#e74c3c;

}

.hex-border-right6?.hex-right?{

border-left:?40px?solid?#e74c3c;

}

.fore7?{

background-color:?#2ecc71;

}

.hex-border-left7?.hex-left?{

border-right:?40px?solid?#2ecc71;

}

.hex-border-right7?.hex-right?{

border-left:?40px?solid?#2ecc71;

}

.fore8?{

background-color:?#e67e22;

}

.hex-border-left8?.hex-left?{

border-right:?40px?solid?#e67e22;

}

.hex-border-right8?.hex-right?{

border-left:?40px?solid?#e67e22;

}

.hex-wrap1:hover?.fore1?{

background-color:?#39B0FF;

border-top:?1px?solid?#39B0FF;

border-bottom:?1px?solid?#39B0FF;

}

.hex-wrap1:hover?.hex-border-left1?{

border-right:?41px?solid?#39B0FF;

}

.hex-wrap1:hover?.hex-border-right1?{

border-left:?41px?solid?#39B0FF;

}

.hex-wrap1:hover?.hex-left?{

border-right:?40px?solid?#39B0FF;

}

.hex-wrap1:hover?.hex-right?{

border-left:?40px?solid?#39B0FF;

}