整理了2種方法,看完確定以爲超簡單~css
1、旋轉型html
話很少說先看下須要的樣式:web
1.transform:rotate(angle)post
2.overflowui
3.visibilityspa
html結構:3d
<body> <div class="box1"> <div class="box2"> <div class="box3"> <p>隨心所欲隨心所欲</p> </div> </div> </div> </body>
3層div,結構是否是很簡單~接下來要怎麼旋轉呢?code
爲了方便理解加了背景orm
box1:紅色
box2:黑色
box3:粉色
1.box1旋轉120°,box2旋轉-60°,box3再旋轉-60°,咱們的內容放在box3中。
2.通過旋轉確定有超出的部分,對3個div都設置overflow:hidden。
3.box1,box2是用來旋轉獲得6邊形的,因此對他們設置visibility: hidden,box3放內容,需顯示,所以設置visibility: visible。
(若是不對box3設置visibility: visible;它會繼承box2的visibility: hidden; )
注意div的寬高不要相等,否則獲得的就不是6邊形咯。
通過旋轉和對超出部分的隱藏就獲得咱們想要的6邊形了,全部代碼以下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>CSS3—六邊形</title> <style type="text/css"> .box1, .box2, .box3 { width: 200px; height: 250px; overflow: hidden; } .box1, .box2 { visibility: hidden; } .box1 { transform: rotate(120deg); -ms-transform: rotate(120deg); -moz-transform: rotate(120deg); -webkit-transform: rotate(120deg); } .box2 { transform: rotate(-60deg); -ms-transform: rotate(-60deg); -moz-transform: rotate(-60deg); -webkit-transform: rotate(-60deg); } .box3 { transform: rotate(-60deg); -ms-transform: rotate(-60deg); -moz-transform: rotate(-60deg); -webkit-transform: rotate(-60deg); background-color:pink; visibility: visible; } .box3 p{ color: yellow; font-size: 22px; line-height: 200px; text-align: center; } </style> </head> <body> <div class="box1"> <div class="box2"> <div class="box3"> <p>隨心所欲隨心所欲</p> </div> </div> </div> </body> </html>
2、拼接型
很明顯2個三角形加1個矩形,是否是很簡單~
三角形請看上一篇:CSS3—三角形
代碼以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css—六邊形2</title> <style> .triangleb{ width:0; height:0; border-top:0px solid transparent; border-right:60px solid transparent; border-bottom:40px solid pink; border-left:60px solid transparent; } .trianglet{ width:0; height:0; border-top:40px solid pink; border-right:60px solid transparent; border-bottom:0px solid transparent; border-left:60px solid transparent; } .box{ width: 120px; height: 65px; background-color: pink; } </style> </head> <body> <div class="triangleb"></div> <div class="box"></div> <div class="trianglet"></div> </body> </html>
博客園:CSS3—六邊形