使用CSS3创建动态菜单效果


Posted in HTML / CSS onJuly 10, 2015

 该教程,我们将讨论CSS3的一些新功能和新特性,并教你在不使用图片和JavaScript的情况下,如何制作酷炫的圆形导航菜单。该实例将用到CSS3的新特性: border-radius和animation。

使用CSS3创建动态菜单效果
 Demo演示

第一步:编辑菜单的HTML代码

菜单包含三个列表项,分别取名为“Menu1”、“Menu2”、“Menu3”。
 

XML/HTML Code复制内容到剪贴板
  1. <div class="css3Menus">     
  2. <ul>     
  3.     <li>Menu1</li>     
  4.     <li>Menu2</li>     
  5.     <li>Menu3</li>     
  6. </ul>     
  7. </div>  

第二步:设置菜单的背景

在该步骤中,我们将把导航的背景设置为黑色。宽度、高度和内边距为可选项,可以不设置。
 

CSS Code复制内容到剪贴板
  1. .<span style="width: auto; height: auto; float: none;" id="4_nwp"><a style="text-decoration: none;" mpid="4" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=e2fbae28688be8a0&k=css3&k0=css3&kdi0=0&luki=10&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=a0e88b6828aefbe2&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F2453%2Ehtml&urlid=0" id="4_nwl"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">css3</span></a></span>Menus {     
  2. background#14080a;     
  3. width:506px;     
  4. height:260px;     
  5. padding:20px;     
  6. }  

如下图:
使用CSS3创建动态菜单效果

第三步:利用border-radius,制作圆形导航。

该步中,我们会利用CSS3的一些酷的功能,尤其是border-radius ,将每个列表项的背景设置为黄色,形状为圆形。 
 

CSS Code复制内容到剪贴板
  1. ul {     
  2. list-stylenone;     
  3. }     
  4.     
  5. li {     
  6. float:left;     
  7. font14px/10px ArialVerdanasans-serif;     
  8. color:#FFF;     
  9. background-color:#CCCC00;     
  10. width80px;     
  11. height80px;     
  12. padding:20px;     
  13. margin:0 30px 0 0;     
  14. -webkit-border-radius: 60px;     
  15. -moz-border-radius: 60px;     
  16. border-radius: 60px;     
  17. }  

菜单看起来呈下面样子:
使用CSS3创建动态菜单效果

第四步:设置菜单的对齐方式

本步骤中,我们将为每个列表项设置特定的背景颜色与位置:
 

CSS Code复制内容到剪贴板
  1. li#menu1 {     
  2. background-color#00FFCC;     
  3. }     
  4. li#menu2 {     
  5. background-color#CC9900;     
  6. margin-top:100px;     
  7. }     
  8. li#menu3 {     
  9. background-color#33FF66;     
  10. margin-top:50px;     
  11. }  

现在菜单看起来呈下面样子:
使用CSS3创建动态菜单效果

第五步:设置菜单中链接的对齐方式
 

CSS Code复制内容到剪贴板
  1. li a {     
  2. color:#FFF;     
  3. text-decoration:none;     
  4. display:<span style="width: auto; height: auto; float: none;" id="2_nwp"><a style="text-decoration: none;" mpid="2" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=e2fbae28688be8a0&k=block&k0=block&kdi0=0&luki=7&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=a0e88b6828aefbe2&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F2453%2Ehtml&urlid=0" id="2_nwl"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">block</span></a></span>;     
  5. width80px;     
  6. height45pxtext-aligncenter;     
  7. padding:35px 0 0 0;     
  8. margin:0 40px 0 0;     
  9. -webkit-border-radius: 40px;     
  10. -moz-border-radius: 40px;     
  11. border-radius: 40px;     
  12. }     
  13. li#menu1 a {     
  14. background-color#FF0000;     
  15. }     
  16. li#menu2 a {     
  17. background-color#660033;     
  18. }     
  19. li#menu3 a {     
  20. background-color#66CCCC;     
  21. }  

菜单现阶段的样子:

使用CSS3创建动态菜单效果

第六步:定义另一种效果,当鼠标悬浮在链接上时进行展现 
 

CSS Code复制内容到剪贴板
  1. li a:hover,     
  2. li a:focus,     
  3. li a:active {     
  4. width120px;     
  5. height:65px;     
  6. padding:55px 0 0 0;     
  7. margin:-20px 0 0 -20px;     
  8. -webkit-border-radius: 60px;     
  9. -moz-border-radius: 60px;     
  10. border-radius: 60px;     
  11. }  

菜单样式如图:
使用CSS3创建动态菜单效果

第七步:最后为导航增加动画效果
 

CSS Code复制内容到剪贴板
  1. li a:hover,     
  2. li a:focus,     
  3. li a:active {     
  4. -webkit-animation-name:bounce;     
  5. -webkit-animation-duration:1s;     
  6. -webkit-animation-iteration-count:4;     
  7. -webkit-animation-direction:alternate;     
  8. }     
  9. @-webkit-keyframes bounce{<span style="width: auto; height: auto; float: none;" id="1_nwp"><a style="text-decoration: none;" mpid="1" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=e2fbae28688be8a0&k=from&k0=from&kdi0=0&luki=2&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=a0e88b6828aefbe2&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F2453%2Ehtml&urlid=0" id="1_nwl"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">from</span></a></span>{margin:0 40px 0 0;}     
  10. to{margin:120px 40px 0 0;}     
  11. }  

菜单所产生的动画效果:
使用CSS3创建动态菜单效果

结论

通过上面教程,你已经学到如何制作酷的动画菜单。在制作过程中不需要使用JavaScript和图片,只需要使用CSS3的一些酷的特性即可。该菜单可以完美地运行于Chrome和Safari浏览器。在Firefox浏览器中,无法看到动画效果。

HTML / CSS 相关文章推荐
详解CSS3开启硬件加速的使用和坑
Aug 21 HTML / CSS
不同浏览器对CSS3和HTML5的支持状况
Oct 31 HTML / CSS
基于CSS3实现的黑色个性导航菜单效果
Sep 14 HTML / CSS
用React加CSS3实现微信拆红包动画效果
Mar 13 HTML / CSS
免费获得微软MCSD证书赶快行动吧!
Nov 13 HTML / CSS
如何使用html5与css3完成google涂鸦动画
Dec 16 HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
Jun 04 HTML / CSS
HTML5打开手机扫码功能及优缺点
Nov 27 HTML / CSS
使用HTML5 Geolocation实现一个距离追踪器
Apr 09 HTML / CSS
Html5页面内使用JSON动画的实现
Jan 29 HTML / CSS
微信小程序canvas实现水平、垂直居中效果
Feb 05 HTML / CSS
html5实现滑块功能之type=&quot;range&quot;属性
Feb 18 HTML / CSS
简单介绍CSS3中Media Query的使用
Jul 07 #HTML / CSS
CSS中垂直居中的简单实现方法
Jul 06 #HTML / CSS
CSS实现定位元素居中的方法
Jun 23 #HTML / CSS
利用CSS3实现文本框的清除按钮相关的一些效果
Jun 23 #HTML / CSS
使用CSS3制作饼状旋转载入效果的实例
Jun 23 #HTML / CSS
利用CSS3实现圆角的outline效果的教程
Jun 05 #HTML / CSS
浅析与CSS3的loading动画加载相关的transition优化
May 18 #HTML / CSS
You might like
PHP编程函数安全篇
2013/01/08 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
2013/06/20 PHP
php数组合并与拆分实例分析
2015/06/12 PHP
php获取、检查类名、函数名、方法名的函数方法
2015/06/25 PHP
php里array_work用法实例分析
2015/07/13 PHP
DOM精简教程
2006/10/03 Javascript
Firefox div高度自适应
2009/04/28 Javascript
通过DOM脚本去设置样式信息
2010/09/19 Javascript
JS实现图片预加载无需等待
2012/12/21 Javascript
JS实现鼠标单击与双击事件共存
2014/03/08 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
Node.js 条形码识别程序构建思路详解
2016/02/14 Javascript
jQuery使用模式窗口实现在主页面和子页面中互相传值的方法
2016/03/01 Javascript
详解nodeJS之二进制buffer对象
2017/06/03 NodeJs
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
JS中利用swiper实现3d翻转幻灯片实例代码
2017/08/25 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
微信小程序地图(map)组件点击(tap)获取经纬度的方法
2019/01/10 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
[36:33]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第二场
2018/04/04 DOTA
Python基于twisted实现简单的web服务器
2014/09/29 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
python 将md5转为16字节的方法
2018/05/29 Python
Python turtle绘画象棋棋盘
2019/08/21 Python
django ajax发送post请求的两种方法
2020/01/05 Python
一款利用纯css3实现的360度翻转按钮的实例教程
2014/11/05 HTML / CSS
大专毕业生自我评价分享
2013/11/10 职场文书
一体化教学实施方案
2014/05/10 职场文书
保安公司服务承诺书
2014/05/28 职场文书
保护水资源的标语
2014/06/17 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
HTML5来实现本地文件读取和写入的实现方法
2021/05/25 HTML / CSS
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js