2013-02-02 98 views
-3

我一直在试图绕六角形的角落一段时间,但我发现我的方法都没有工作。你们有什么可以做的建议吗?是否可以圆形?六边形,八边形等形状?

+3

[你有什么尝试?](http://whathaveyoutried.com) – 2013-02-02 18:33:41

+0

CSS是不是一个很好的wap来实现这一点。尝试SVG。 –

+0

尝试使用svg但无济于事 – Xceptic

回答

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-radiusnth-child,IE 7/8根本不工作。

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

  • This site显示许多其他有趣的形状可以生成。

+0

你好Tim Medora。我有一个关于“边界半径大小,宽度和高度之间的简单数学关系”的问题,你能帮我找到关系吗?提前致谢。 –

+1

@DonovanCharpin - 这是一个修改的小提琴,演示了这些关系:http://jsfiddle.net/9BTTQ/91/。高度=宽度* 1.5,边界半径=宽度* .25。老实说,我不确定背后的几何形状,为什么*这适用于由三个相等矩形组成的圆角六角形。 –

+0

感谢您的快速回答。在[网站](http://rechneronline.de/pi/hexagon.php)中,如果边长等于100,则短对角线约为173,因此比例为“height = width * 1.73”。对于边界半径,我找不到与高度和宽度一致的值...在jsFiddle中,我可以写出'border-radius:1em/0.5em;'这个完美的作品[例子](http ://codepen.io/thebabydino/pen/gFxzt)。但是我的最新版lessCSS计算2em时出现问题,与1em/0.5 ... DAMN不一样。 [jsFiddle](http://jsfiddle.net/9BTTQ/92/)已更新 –