CSS3—六邊形

整理了2種方法,看完確定以爲超簡單~css

1、旋轉型html

話很少說先看下須要的樣式:web

1.transform:rotate(angle)post

2.overflowui

3.visibilityspa

效果:演示效果runjsssr

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:粉色

123

 

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、拼接型

看效果:演示效果runjs

很明顯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—六邊形

相關文章
相關標籤/搜索