-4

一段时间以来,我一直在尝试圆角六边形,但是我发现我的方法都不起作用。你们对如何做到这一点有什么建议吗?

4

1 回答 1

4

http://jsfiddle.net/9BTTQ/4/

HTML

<div class="hexagon">
    <div>1</div>
    <div>2</div>
    <div>3</div>
</div>

CSS

.hexagon {
    position: relative;    
}

.hexagon > DIV {
    position: absolute;
    top: 0;
    left: 48px;
    -moz-border-radius: 16px;
    border-radius: 16px;
    width: 64px;
    height: 96px;
    background-color: blue;
}

.hexagon > DIV:nth-child(2) {
    -moz-transform: rotate(60deg);
    -ms-transfrom: rotate(60deg);
    -webkit-transform: rotate(60deg);
    transform: rotate(60deg);
}

.hexagon > DIV:nth-child(3) {
    -moz-transform: rotate(120deg);
    -ms-transfrom: rotate(120deg);
    -webkit-transform: rotate(120deg);
    transform: rotate(120deg);
}

笔记:

  • 除非它是一个孤立的需要,否则这可能会更好地使用 SVG 或画布来完成。创建一堆元素来形成一个形状既没有语义又乏味。

  • transform由于,border-radius和, IE 7/8 根本无法工作nth-child

  • 您会注意到边界半径大小、宽度和高度之间的简单数学关系。

  • 该站点显示了许多其他可以生成的有趣形状。

于 2013-02-02T22:55:08.167 回答