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>

原文地址:https://www.cnblogs.com/xiaobaizhiqian/p/8379666.html

时间: 2024-10-09 08:43:27

CSS3实现3d菜单翻转的相关文章

css3实现3D立体翻转效果

1.在IE下无法显示翻转效果,火狐和谷歌可以 1 /*样式css*/ 2 3 .nav-menu li { 4 display: inline; 5 } 6 .nav-menu li a { 7 color: #fff; 8 display: block; 9 text-decoration: none; 10 overflow: visible; 11 line-height: 40px; 12 font-size: 20px; 13 width:200px; 14 height: 50px;

一款非常棒的纯CSS3 3D菜单演示及制作教程

原文:一款非常棒的纯CSS3 3D菜单演示及制作教程 这段时间比较忙,很久没在这里分享一些漂亮的HTML5和CSS3资源了,今天起的早,看到一款很不错的CSS3 3D菜单,觉得非常上眼,就将它分享给大家,顺便来分析一下实现的源码.下面是效果图: 看了效果图是不是觉得它是一副麻将,对,第一眼我也认为是用CSS3写的麻将特效,结果我错了,它只是长得比较像而已. 另外,你也可以在这里直接查看菜单的DEMO演示. 接下来再分析一下实现这款3D菜单的源代码. 代码主要由HTML和CSS3组成,应该说还是比

css3实现酷炫的3D盒子翻转效果

简介 运用css3先在平面空间组成立方体盒子,再让整个盒子翻转起来,先来张效果图: 步骤 1.先用css将6张图片摆成下图的样子: 下面就是通过css3的3D变换将每个面进行翻转,使之成为一个立体的盒子,代码如下: //左面 .pic2{ transform:rotateY(90deg); //沿y轴翻转90度 transform-origin:right; //以右边为轴 } //前面 .pic6{ transform:translateZ(100%); //垂直屏幕向外移动立方体的长度 }

超酷 CSS3/HTML5 3D 飘带菜单实现教程

今天我们来介绍一款很有创意的CSS3/HTML5菜单,首先菜单是飘带形状的,看起来很优雅,这种菜单在个人博客中用的比较多,不仅干净利落,而且很具有个性化.另外,这款菜单在鼠标滑过菜单项时,将会出现3D的凸起效果,并且会改变菜单项的背景颜色,效果非常的酷,你可以从在线演示中查看这一效果. 你也可以在这里查看在线演示 下面我们来一起看看实现这款CSS3飘带菜单的具体过程以及源代码.源码主要由HTML代码和CSS代码组成,还比较简单. HTML代码: <div class=’ribbon’> <

css3三维动画菜单上下翻转

<!DOCTYPE HTML><html lang=zh-cn><head><meta charset=utf-8><title>css3三维动画菜单上下翻转</title><style>*{margin:0px;padding:0px;}body{background:#b1b1b1;margin:0px;padding:0px;font-size:14px;color:#000;}.tips{width:980px;m

基于CSS3飘带状3D菜单 菜单带小图标

这次我们要来分享一款很特别的CSS3菜单,菜单的外观是飘带状的,并且每一个菜单项有一个精美的小图标,鼠标滑过菜单项时,菜单项就会向上凸起,像是飘带飘动一样,形成非常酷的3D视觉效果.这款CSS3飘带状3D菜单非常适合作一些活动页面的菜单导航. 在线预览   源码下载 实现的代码. htmll代码: <nav> <menu> <li><a href="#"><span>t</span> <span>twi

css3立体旋转菜单

css3立体旋转菜单,css3,3D,立体旋转,立体菜单,菜单导航,css3立体旋转菜单是一款纯css3实现的三维立体旋转导航菜单. 源码下载页:http://www.huiyi8.com/sc/7127.html css3立体旋转菜单,布布扣,bubuko.com

初步学习css3之3D动画

本人是一名前端菜鸟,在css3如此火爆的时代,今天才来接触这个神秘的东西,第一次接触到的就是使用css3制作3d动画,特来写此文章,高手勿喷. 以下是body部分 <body> <div id="my3d"> <div id="pagegroup"> <div class="page" id="page1">1</div> <div class="pa

css3实现色子自动翻转效果

原文:css3实现色子自动翻转效果 css3使我们能够跳出2d空间,实现3维空间的动画效果,这里给出一个自动翻转的3d色子动画效果制作过程. 第一步,首先进行HTML的布局,对于3D效果,布局有一定的规律,代码如下: <body> <div id="outer"> <div id="group"> <div class="page" id="page1">.</div>