2013-02-02 133 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/)已更新 –