借助transform:rotate实现上图的3D导航效果

具体代码如下

 1     <div class="nav">
2 <ul>
3 <li>
4 <a href="#">首页</a>
5 <a href="#">index</a>
6 </li>
7 <li><a href="#">新闻</a>
8 <a href="#">news</a>
9 </li>
10 <li><a href="#">产品</a>
11 <a href="#">product</a>
12 </li>
13 <li><a href="#">关于</a>
14 <a href="#">about</a>
15 </li>
16 </ul>
17 </div>
 1 <style>
2 .nav {
3 margin: 200px auto;
4 width: 600px;
5
6 }
7
8 ul {
9 list-style: none;
10 }
11
12 .nav li {
13 float: left;
14 position: relative;
15 width: 100px;
16 height: 50px;
17 line-height: 50px;
18 /* 需要在父元素设置transform-style:preserve-3d 以实现子元素的3d效果 */
19 transform-style: preserve-3d;
20
21 transition: all .5s;
22 }
23
24 .nav li a {
25 position: absolute;
26 top: 0;
27 left: 0;
28 width: 100%;
29 height: 100%;
30 text-align: center;
31 text-decoration: none;
32 color: #fff;
33 }
34
35 .nav li a:first-child {
36 transform: translateZ(25px);
37 background-color: green;
38 }
39
40 .nav li a:last-child {
41 /* 此时橙色盒子躺平之后,需要俯视才能看到橙色盒子,看它的方向始终是Z轴方向,所以这里要向Z轴移动,相当于旋转的时候它的三个轴也会跟着旋转 */
42 transform: rotateX(90deg) translateZ(25px);
43 background-color: orange;
44 }
45
46 .nav li:hover {
47 transform: rotateX(-90deg);
48 }
49 </style>

rotate旋转的时候遵循左手法则:轻握左手,大拇指指向旋转轴正方向,四指指向的方向就是旋转方向。屏幕到眼睛方向为rotate的Z轴正方向,水平为X,垂直是Y,如下图所示

CSS3-3D导航(transform:rotate)的更多相关文章

  1. css3 3d展示中rotate()介绍与简单实现

    最近在了解css3的3d动画效果,学习发现,css3中的3d效果实现还是很好玩的,现在我给你大家简单的介绍一下css3中3d效果的实现. 我也只是一个初学者,如果在博客中写的不对的地方欢迎指正. 好了 ...

  2. [应用][js+css3]3D盒子导航[PC端]

    CSS3构建的3D盒子之导航应用 1.在用css3构建的盒子表面,放上iframe,来加载导航页面. 2.鼠标左键按下移动可旋转盒子,寻找想要的网址. 3.左键单机盒子表面,将全屏现实所点盒子表面的网 ...

  3. CSS3 transform rotate(旋转)锯齿的解决办法

    -moz-transform: rotate(5deg);-webkit-transform: rotate(5deg); 把图片旋转了5度.本以为轻而易举,可遇到了问题.在Fireofx中显示正常, ...

  4. 好吧,CSS3 3D transform变换,不过如此!

    一.写在前面的秋裤 早在去年的去年,我就大肆介绍了2D transform相关内容.看过海贼王的都知道,带D的家伙都不是好惹的,2D我辈尚可以应付,3D的话,呵呵,估计我等早就在千里之外被其霸气震晕了 ...

  5. CSS3 3D Transform

    CSS3 3D Transform 原文:http://www.w3cplus.com/css3/css3-3d-transform.html 三维变换使用基于二维变换的相同属性,如果您熟悉二维变换, ...

  6. 基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转

    基于css3新属性transform,实现3d立方体的旋转 通过原生JS,点击事件,鼠标按下.鼠标抬起和鼠标移动事件,实现3d立方体的拖动旋转,并将旋转角度实时的反应至界面上显示 实现原理:通过获取鼠 ...

  7. 好吧,CSS3 3D transform变换,不过如此!——张鑫旭

    一.写在前面的秋裤 早在去年的去年,我就大肆介绍了2D transform相关内容.看过海贼王的都知道,带D的家伙都不是好惹的,2D我辈尚可以应付,3D的话,呵呵,估计我等早就在千里之外被其霸气震晕了 ...

  8. CSS3 transform rotate(旋转)锯齿/元素抖动模糊的解决办法

    使用CSS3 3D transforms,通过GPU来渲染,能有效的起到抗锯齿效果.只要在CSS3 transform属性中加入translateZ(0).例:-webkit-transform: r ...

  9. css3中做3D导航栏

    看别人做的一个3D导航栏,觉得很厉害,这里先保存下来,后面有时间好好分析一下: <!doctype html> <html lang="en"> <h ...

  10. HTML5之CSS3 3D transform 剖析式学习之一

    最近坐地铁发现“亚洲动物基金”在地铁上做了很多公益广告,比较吸引人的是一个月熊的广告.做的很可爱.回去就搜了一下,发现这个网站是HTML5做的,非常炫. 所以想学习一下,方法就是传统的学习办法,模仿. ...

随机推荐

  1. C语言利用union 和 struct 进行位拆分

    #include <stdlib.h> typedef unsigned char uint8_t; union wate_temp{ struct { uint8_t wate_temp ...

  2. winform 容器内存泄漏

    循环中释放容器时调用Dispose()方法会销毁对象,导致容器的个数变化. 正确示例//方法一for (int i = this.flowLayoutPanel1.Controls.Count-1; ...

  3. typescript学习 回顾查漏

    1.在public构造函数上使用on参数是一种速记,它使我们能够自动使用该名称创建属性. class Student { fullName:string; constructor(public fir ...

  4. 修改jar包内容

    列举jar包内容 # 列举jar包所有文件 jar tvf test.jar 从jar包中提取文件 # 从test.jar中提取test.jar/test.txt到test.txt jar xvf t ...

  5. ES使用

    shards 分片数 ES存储数据可以存储在多个分片 下载ES curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elas ...

  6. java异常信息打印

    如果你不仅想在日志中查看异常信息,也想把异常信息保存起来作为数据查看,那么你可以这样做 public void printException(Exception e) { ByteArrayOutpu ...

  7. vue 中的 provide/inject

    provide/inject 是 vue 2.2.0 版本新增 类型: provide:Object | () => Object inject:Array<string> | { ...

  8. How to setup a Chia Harvester on Ubuntu

    How to setup a Chia Harvester on Ubuntu Posted on May 4, 2021 A Chia Harvest is a computer that farm ...

  9. c语言动态库与静态库

    // show.h #ifndef __SHOW_H_ #define __SHOW_H_ #include <stdio.h> #include "math.h" v ...

  10. MyLiveCam使用条款与免责协议

    MyLiveCam(以下简称"我们")在此特别提醒您务必认真阅读.充分理解本<使用条款与免责协议>(以下简称"本协议")中各条款并选择是否接受本协议 ...