博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一款非常棒的纯CSS3 3D菜单演示及制作教程
阅读量:6583 次
发布时间:2019-06-24

本文共 3674 字,大约阅读时间需要 12 分钟。

这段时间比较忙,很久没在这里分享一些漂亮的HTML5和CSS3资源了,今天起的早,看到一款很不错的CSS3 3D菜单,觉得非常上眼,就将它分享给大家,顺便来分析一下实现的源码。下面是效果图:

看了效果图是不是觉得它是一副麻将,对,第一眼我也认为是用CSS3写的麻将特效,结果我错了,它只是长得比较像而已。

另外,你也可以在这里直接。

接下来再分析一下实现这款3D菜单的源代码。

代码主要由HTML和CSS3组成,应该说还是比较简单的。

首先是HTML代码:

这里用了标准的ul li列表来构建菜单的HTML框架,层次非常清晰。

接下来重点是CSS代码,如何用CSS3的特性来实现菜单的侧躺和阴影效果,从来让其看起来呈3D的状态。

ul {
position: relative; -webkit-transform: rotate(-35deg) skew(20deg, 5deg); -moz-transform: rotate(-35deg) skew(20deg, 5deg); -ms-transform: rotate(-35deg) skew(20deg, 5deg); -o-transform: rotate(-35deg) skew(20deg, 5deg); transform: rotate(-35deg) skew(20deg, 5deg);}

上面的这几行代码很关键,我们也可以看出用了CSS3的transform属性的rotate()实现菜单整体旋转一定角度,然后用skew()让菜单倾斜一个角度,这样菜单就开始有3D立体的感觉了。

接下来是每一个菜单项的样式:

.list-item {
background: #000000; color: #575757; text-align: center; height: 2.5em; width: 4em; vertical-align: middle; line-height: 2.5em; border-bottom: 1px solid #060606; position: relative; display: block; text-decoration: none; -webkit-box-shadow: -2em 1.5em 0 #e1e1e1; -moz-box-shadow: -2em 1.5em 0 #e1e1e1; box-shadow: -2em 1.5em 0 #e1e1e1; -webkit-transition: top 0.25s linear, left 0.25s linear, background 0.1s linear, color 0.1s linear; -moz-transition: top 0.25s linear, left 0.25s linear, background 0.1s linear, color 0.1s linear; -o-transition: top 0.25s linear, left 0.25s linear, background 0.1s linear, color 0.1s linear; transition: top 0.25s linear, left 0.25s linear, background 0.1s linear, color 0.1s linear;}.list-item:hover {
background: #ff6e42; color: #fffcfb; top: -0.5em; left: 0.5em; -webkit-transition: top 0.25s linear, left 0.25s linear, background 0.1s linear, color 0.1s linear; -moz-transition: top 0.25s linear, left 0.25s linear, background 0.1s linear, color 0.1s linear; -o-transition: top 0.25s linear, left 0.25s linear, background 0.1s linear, color 0.1s linear; transition: top 0.25s linear, left 0.25s linear, background 0.1s linear, color 0.1s linear; -webkit-box-shadow: -2em 2em 0 #e1e1e1; -moz-box-shadow: -2em 2em 0 #e1e1e1; box-shadow: -2em 2em 0 #e1e1e1;}.list-item:hover:before, .list-item:hover:after {
-webkit-transition: all 0.25s linear; -moz-transition: all 0.25s linear; -o-transition: all 0.25s linear; transition: all 0.25s linear;}.list-item:hover:before {
background: #b65234; width: 1em; top: 0.5em; left: -1em;}.list-item:hover:after {
background: #b65234; width: 1em; bottom: -2.5em; left: 1em; height: 4em;}.list-item:before, .list-item:after {
-webkit-transition: all 0.25s linear; -moz-transition: all 0.25s linear; -o-transition: all 0.25s linear; transition: all 0.25s linear;}.list-item:after {
content: ""; position: absolute; height: 4em; background: #181818; width: 0.5em; bottom: -2.25em; left: 1.5em; -webkit-transform: rotate(90deg) skew(0deg, 45deg); -moz-transform: rotate(90deg) skew(0deg, 45deg); -ms-transform: rotate(90deg) skew(0deg, 45deg); -o-transform: rotate(90deg) skew(0deg, 45deg); transform: rotate(90deg) skew(0deg, 45deg);}.list-item:before {
content: ""; position: absolute; height: 2.5em; background: #121212; width: 0.5em; top: 0.215em; left: -0.45em; -webkit-transform: skewY(-45deg); -moz-transform: skewY(-45deg); -ms-transform: skewY(-45deg); -o-transform: skewY(-45deg); transform: skewY(-45deg);}

我们可以看到用了shadow实现每一个菜单项都有投影,至此,整个菜单的3D效果就已经渲染完了。

另外就是鼠标滑过菜单项的效果,利用了CSS3的动画特性让菜单项背景色渐变,形成凸起的效果。

整个实现就是这样了,你可以下载源代码,

转载地址:http://fyxno.baihongyu.com/

你可能感兴趣的文章
HTTP协议详解
查看>>
CSS
查看>>
静态库相关
查看>>
TDD: 解除依赖
查看>>
L3-003. 社交集群
查看>>
Linux 日志
查看>>
【风马一族_git_github】git的工作流程
查看>>
B7:访问者模式 Visitor
查看>>
Java数据类型
查看>>
android实现点击缩略图查看大图
查看>>
计算机基础系列之硬件
查看>>
[NOI2005]维护数列
查看>>
nginx安装
查看>>
springboot 增加过滤器方法
查看>>
DIY PIXHAWK APM等飞控用的声纳
查看>>
进程介绍(理论部分)
查看>>
电子商务常用分析模型
查看>>
Java如何查看死锁?
查看>>
求1-n 中与 m 互质的素因子 (容斥原理)
查看>>
文件服务器 之 vsftpd + pam_mysql + mysql 做的 ftp 服务器
查看>>