CSS3 3D立方体翻转菜单实现教程
今天我们来看一个非常有创意的CSS3 3D菜单,这个菜单的菜单项是可以旋转的长方体,鼠标滑过是长方体即可旋转,看看下面的效果图,是不是感觉非常酷,我觉得这个菜单很适合用在咱们开发人员的个人网站上。

当然你也可以直接到这里去查看这款菜单的DEMO演示。
接下来还是分析一下这款CSS3菜单的源代码吧,很简单的HTML+CSS即可实现。
先来看看HTML代码:
<nav>
<ul>
<li><a class="current" href="#" data-hover="Home">Home</a></li>
<li><a href="#" data-hover="Blog">Blog</a></li>
<li><a href="#" data-hover="About">About</a></li>
<li><a href="#" data-hover="Contact">Contact</a></li>
</ul>
</nav>
这个HTML布局可谓是干净利落,很难看出来这会是一款超酷的3D菜单。
当然最重要的是CSS代码,一起来看看:
先是定义了一下菜单的整体外观,包括文字的颜色和菜单的背景等等:
nav {
background: #fff;
margin: 15vh 2rem;
}
nav ul {
list-style: none;
}
nav ul li {
display: inline-block;
text-transform: uppercase;
font-size: 1.5rem;
letter-spacing: 0.05rem;
}
nav ul li a {
display: inline-block;
padding: 1rem;
color: #000;
text-decoration: none;
-webkit-transition: -webkit-transform 0.3s ease 0s;
transition: transform 0.3s ease 0s;
-webkit-transform-origin: 50% 0px 0px;
-ms-transform-origin: 50% 0px 0px;
transform-origin: 50% 0px 0px;
-webkit-transform-style: preserve-3d;
-ms-transform-style: preserve-3d;
transform-style: preserve-3d;
}
nav ul li a.current {
color: #FF005B;
}
然后就是鼠标滑过菜单项实现的立方体翻转效果了:
nav ul li a:hover {
background: #fff;
color: #000;
-webkit-transform: rotateX(90deg) translateY(-22px);
-ms-transform: rotateX(90deg) translateY(-22px);
transform: rotateX(90deg) translateY(-22px);
}
nav ul li a::before {
position: absolute;
top: 100%;
left: 0px;
width: 100%;
padding: 4px 0px;
text-align: center;
line-height: 50px;
background: none repeat scroll 0% 0% #FF005B;
color: #FFF;
content: attr(data-hover);
-webkit-transition: #6363CE 0.3s ease 0s;
transition: #6363CE 0.3s ease 0s;
-webkit-transform: rotateX(-90deg);
-ms-transform: rotateX(-90deg);
transform: rotateX(-90deg);
-webkit-transform-origin: 50% 0px 0px;
-ms-transform-origin: 50% 0px 0px;
transform-origin: 50% 0px 0px;
}
不难看出,我们通过CSS3的transform的rotate属性就能完成翻转的动作,同时结合transition属性来实现翻转过程中颜色的渐变动画。
最后我们把源代码分享上来,下载地址>>
CSS3 3D立方体翻转菜单实现教程的更多相关文章
- CSS3 3D立方体效果-transform也不过如此
CSS3系列已经学习了一段时间了,第一篇文章写了一些css3的奇技淫巧,原文戳这里,还获得了较多网友的支持,在此谢过各位,你们的支持是我写文章最大的动力^_^. 那么这一篇文章呢,主要是通过一个3D立 ...
- CSS3 3D立方体效果
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content=&q ...
- css3 3d正反面翻转
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CSS3 3D旋转动画菜单
在线演示 本地下载
- 纯css3 3D图片立方体旋转动画特效
纯css3 3D立方体模块,鼠标触碰,模块炸开,大立方体中套小立方体 效果展示 手机扫描二维码体验效果: 效果图如下: 源码下载:http://hovertree.com/h/bjaf/0qmul8g ...
- 基于HTML5/CSS3可折叠的3D立方体动画
今天要给大家带来另外一款CSS3 3D立方体动画,尤其在DEMO2中可以看到,鼠标滑过立方体后,它将会被打开,从里面弹出另外一个小立方体,动画效果非常酷,非常逼真. 在线预览 源码下载 实现的代码 ...
- CSS3 3D Transform
CSS3 3D Transform 原文:http://www.w3cplus.com/css3/css3-3d-transform.html 三维变换使用基于二维变换的相同属性,如果您熟悉二维变换, ...
- 炫酷实用的CSS3代码垂直手风琴菜单
今天在微博上看到别人分享的代码,自己拿来自己保存着. 代码效果如下: 下面是源码: index.html <!DOCTYPE html> <html > <head> ...
- 一款非常棒的纯CSS3 3D菜单演示及制作教程
原文:一款非常棒的纯CSS3 3D菜单演示及制作教程 这段时间比较忙,很久没在这里分享一些漂亮的HTML5和CSS3资源了,今天起的早,看到一款很不错的CSS3 3D菜单,觉得非常上眼,就将它分享给大 ...
随机推荐
- #define SIG_DFL ((void(*)(int))0)
在linux内的信号处理函数中,有#define SIG_DFL ((void(*)(int))0)和#define SIG_IGN ((void(*)(int))1)两个宏定义.要理解这两个宏定义, ...
- Python(四)之Python流程控制(if、while、for)
Python流程控制 if测试: if 条件测试表达式: 组合条件测试: x and y:与运算 x or y:或运算 not x:非运算 while: break:跳出最内层的循环 continue ...
- uboot命令实现举例
之前一直在想,为什么没有人出一个完全从零写uboot和移植剪裁内核的教程,后来发现,确实这样的教程十分不容易,还有就是我们也没有必要花那么多时间去做别人已经做好的事情,所以,一般而言我们只用管怎么实现 ...
- python zeromq 使用
Reference: http://blog.csdn.net/kwsy2008/article/details/49464663 本篇博客将介绍zmq应答模式,所谓应答模式,就是一问一答,规则有这么 ...
- ARKit从入门到精通(3)-ARKit自定义实现
转载:http://blog.csdn.net/u013263917/article/details/73038566 在上一小节中ARKit从入门到精通(2)-ARKit工作原理及流程介绍,我们完整 ...
- 正益无线首页jQuery焦点图
分享一款正益无线首页jQuery焦点图,带索引按钮,自动轮播切换特效焦点图代码. 在线预览 源码下载 实现的代码. html代码: <div id="slideBox" ...
- 基于html5可拖拽图片循环滚动切换
分享一款基于html5可拖拽图片循环滚动切换.这是一款支持手机端拖拽切换的网站图片循环滚动特效.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div id="s ...
- 提取nmap扫描出来的xml文件
代码: <?php $file_path = "xiamen_scan_ok.xml"; $file = fopen($file_path, "r"); ...
- Java heap space cdh 5.11.1
在执行hive count 查询的时候报错:Error: Java heap space 解决办法是 set io.sort.mb=10; 执行hadoop的Exeample的时候报错,也是java ...
- CentOS重置Mysql密码
1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录 ...