首页 > Web开发 > 详细

CSS3—六边形

时间:2016-01-28 20:53:12      阅读:157      评论:0      收藏:0      [点我收藏+]

整理了2种方法,看完肯定觉得超简单~

一、旋转型

话不多说先看下需要的样式:

1.transform:rotate(angle)

2.overflow

3.visibility

效果:演示效果runjs

技术分享

html结构:

<body>
    <div class="box1">
        <div class="box2">
            <div class="box3">
                <p>为所欲为为所欲为</p>
            </div>
        </div>
    </div>
</body>

3层div,结构是不是很简单~接下来要怎么旋转呢?

为了方便理解加了背景

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>

 二、拼接型

看效果:演示效果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—六边形

原文:http://www.cnblogs.com/easy-blue/p/5166896.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!