zoukankan      html  css  js  c++  java
  • CSS3实现3d菜单翻转

    transform-style:flat | preserve-3d;

    3d透视属性。针对子元素如何在3d空间相对其父元素渲染,这个属性声明在父元素上,并且他的子元素使用了transform才会有效。有两个属性值,一个是flat平面,这也是默认值;一个是preserve-3d当子元素使用transform时,保留其3d的位置也就是3d透视。本示例3d菜单翻转动画中,使用了transform的3d变形属性,包括旋转和移动。当鼠标移入该菜单,该元素做3d翻转动画;鼠标离开后,还原至初始状态

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>CSS3实现3d菜单翻转</title>
        <style type="text/css">
            .nav{
                width: 980px;
                margin: 50px auto;
                background-color: #fdfdfd;
                border: 1px #cccccc solid;
            }
            .nav:after{
                /*本段css主要是解决header标签中的子元素因为浮动而未将header高度撑起来的问题*/
                clear: both;
                display: block;
                overflow: hidden;
                content: "";
            }
            .nav .item{
                width: 200px;
                height: 100px;
                float: left;
                border-right: 5px #333333 solid;
                /*3d元素距离视图的距离,当元素设置perspective时,它的子元素会获得一个透视的效果,而不是元素的本身
                其实就是z轴的距离,从屏幕到屏幕里面的距离*/
                -webkit-perspective: 4000px;
                -moz-perspective: 4000px;
                perspective: 4000px;
            }
            .nav .item:last-child{
                border-right: none;
            }
            .nav .item a{
                display: block;
                height: 100px;
                /*去掉超链接默认的下边线*/
                text-decoration: none;
                -webkit-transition: all .5s;
                -moz-transition: all .5s;
                -ms-transition: all .5s;
                -o-transition: all .5s;
                transition: all .5s;
                -webkit-transform-style: preserve-3d;
                -moz-transform-style: preserve-3d;
                -ms-transform-style: preserve-3d;
                transform-style: preserve-3d;
            }
            .nav .item a p{
                height: 100px;
                margin: 0;
                /*设置行高,设置文字距上距下的高,包括文字的高度。这里与height同高,即垂直方向居中*/
                line-height: 100px;
                color: #ffffff;
                text-align: center;
                font-size: 20px;
                font-famiy: "Microsoft Yahei";
                -webkit-border-radius: 2px;
                -moz-border-radius: 2px;
                border-radius: 2px;
                -webkit-transition: all .5s;
                -moz-transition: all .5s;
                -ms-transition: all .5s;
                -o-transition: all .5s;
                transition: all .5s;
            }
            .nav .item a p:first-child{
                background-color: #009900;
                -webkit-transform: translateZ(50px);
                -moz-transform: translateZ(50px);
                -ms-transform: translateZ(50px);
                -o-transform: translateZ(50px);
                transform: translateZ(50px);
            }
            .nav .item a p:last-child{
                background-color: #000099;
                -webkit-transform: translateZ(50px) rotateX(-90deg);
                -moz-transform: translateZ(50px) rotateX(-90deg);
                -ms-transform: translateZ(50px) rotateX(-90deg);
                -o-transform: translateZ(50px) rotateX(-90deg);
                transform: translateZ(50px) rotateX(-90deg);
                margin-top: -50px;
            }
            .nav .item a:hover{
                -webkit-transform: rotateX(90deg);
                -moz-transform: rotateX(90deg);
                -ms-transform: rotateX(90deg);
                -o-transform: rotateX(90deg);
                transform: rotateX(90deg);
            }
            .nav .item a:hover p:last-child{
                margin-top: 0;
                -webkit-transform: translateZ(0) rotateX(-90deg);
                -moz-transform: translateZ(0) rotateX(-90deg);
                -ms-transform: translateZ(0) rotateX(-90deg);
                -o-transform: translateZ(0) rotateX(-90deg);
                transform: translateZ(0) rotateX(-90deg);
            }
        </style>
    </head>
    <body>
        <header class="nav">
            <div class="item">
                <a href="#">
                    <p>首页</p>
                    <p>Home</p>
                </a>
            </div>
            <div class="item">
                <a href="#">
                    <p>问答</p>
                    <p>Q &amp A</p>
                </a>
            </div>
            <div class="item">
                <a href="#">
                    <p>关于我们</p>
                    <p>About us</p>
                </a>
            </div>
        </header>
    </body>
    </html>
  • 相关阅读:
    批量新增百万条数据 十百万条数据
    sqlserver 组内排序
    EF ++属性会更新实体
    Entity Framework Core: A second operation started on this context before a previous operation completed
    abp Cannot access a disposed object. A common cause of this error is disposing
    abp xunit Can not register IHostingEnvironment. It should be a non-abstract class. If not, it should be registered before.”
    hangfire enqueued but not processing(hangfire 定时任务入队列但不执行)
    EF 更新实体 The instance of entity type 'BabyEvent' cannot be tracked because another instance
    datatable to entiy list 不支持可空类型和枚举类型
    webapi 设置不显示接口到swaggerUI
  • 原文地址:https://www.cnblogs.com/xiaobaizhiqian/p/8379666.html
Copyright © 2011-2022 走看看