css3与html5实现响应式导航菜单(导航栏)效果分享


Posted in HTML / CSS onFebruary 12, 2014

此方法可以应用到有特别多的链接菜单项目中,特别在移动项目中,它可以将所有菜单转换成一个按钮式的下拉菜单。

HTML

示例中有一个导航菜单的html结构,元素<nav>用来定位导航菜单,.current表示当前活动的导航项。
 

复制代码
代码如下:

<ul>
<li class="current"><a href="#">首页</a></li>
<li><a href="#">客户服务</a></li>
<li><a href="#">产品展示</a></li>
<li><a href="#">经典案例</a></li>
<li><a href="#">联系我们</a></li>
</ul>

CSS

首先我们要给菜单nav相对定位,我们在.nav li中使用display: inline-block代替float:left,这样一来我们可以使用text-align 来对nav菜单进行左中右对齐设置。
 
 

复制代码
代码如下:

.nav {
position: relative;
margin: 20px 0;
}
.nav ul {
margin: 0;
padding: 0;
}
.nav li {
margin: 0 5px 10px 0;
padding: 0;
list-style: none;
display: inline-block;
}
.nav a {
padding: 3px 12px;
text-decoration: none;
color: #999;
line-height: 100%;
}
.nav a:hover {
color: #d0d0d0;
}
.nav .current a {
background: #999;
color: #fff;
border-radius: 5px;
}
使用text-align对菜单进行右对齐和居中对齐。

/* right nav */
.nav.right ul {
text-align: right;
}

/* center nav */
.nav.center ul {
text-align: center;
}

接下来我们来做响应式设计,我们使用CSS3的media query来实现。当浏览器窗口宽度小于600px时,我们把<nav>设置成relative相对定位,把<ul>设置成absolute绝对定位,并且display:none隐藏所有li元素,这个时候导航菜单变成一个固定大小的按钮。当鼠标滑向nav元素时,菜单下拉展开,设置所有li的样式display: block,具体请看代码:
 
 

复制代码
代码如下:

@media screen and (max-width: 600px) {
.nav {
position: relative;
min-height: 40px;
}
.nav ul {
width: 180px;
padding: 5px 0;
position: absolute;
top: 0;
left: 0;
border: solid 1px #aaa;
background: #fff url(images/menu.png) no-repeat 10px 11px;
border-radius: 5px;
box-shadow: 0 1px 2px rgba(0,0,0,.3);
}
.nav li {
display: none; /* hide all items */
margin: 0;
}
.nav .current {
display: block; /* show only currentitem */
}
.nav a {
display: block;
padding: 5px 5px 5px 32px;
text-align: left;
}
.nav .current a {
background: none;
color: #666;
}

/* on nav hover */
.nav ul:hover {
background-image: none;
}
.nav ul:hover li {
display: block;
margin: 0 0 5px;
}
.nav ul:hover .current {
background: url(images/check.png) no-repeat 10px 7px;
}

/* right nav */
.nav.right ul {
left: auto;
right: 0;
}

/* center nav */
.nav.center ul {
left: 50%;
margin-left: -90px;
}
}

HTML / CSS 相关文章推荐
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
Dec 31 HTML / CSS
CSS3制作苹果风格键盘特效
Feb 26 HTML / CSS
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
Dec 30 HTML / CSS
用纯CSS3实现网页中常见的小箭头
Oct 16 HTML / CSS
css3实现背景动态渐变效果
Dec 10 HTML / CSS
HTML5 Canvas标签使用收录
Jul 07 HTML / CSS
HTML5 对各个标签的定义与规定:body的介绍
Jun 21 HTML / CSS
使用phonegap操作数据库的实现方法
Mar 31 HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
Jan 08 HTML / CSS
HTML5 SEO优化的一些建议
Aug 27 HTML / CSS
CSS代码检查工具stylelint的使用方法详解
Mar 27 HTML / CSS
CSS3实现的文字弹出特效
Apr 16 HTML / CSS
推荐10个CSS3 制作的创意下拉菜单效果
Feb 11 #HTML / CSS
纯css3显示隐藏一个div特效的具体实现
Feb 10 #HTML / CSS
css3让div随鼠标移动而抖动起来
Feb 10 #HTML / CSS
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
Feb 10 #HTML / CSS
css3的@media属性实现页面响应式布局示例代码
Feb 10 #HTML / CSS
CSS3控制HTML元素动画效果
Feb 08 #HTML / CSS
使用css3匹配手机屏幕横竖状态
Jan 27 #HTML / CSS
You might like
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
jQuery 学习第五课 Ajax 使用说明
2010/05/17 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
浅谈Javascript如何实现匀速运动
2014/12/19 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
JavaScript SHA512加密算法详细代码
2016/10/06 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
vue+swiper实现左右滑动的测试题功能
2020/10/30 Javascript
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
编写简单的Python程序来判断文本的语种
2015/04/07 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
关于Python-faker的函数效果一览
2019/11/28 Python
python实现简单颜色识别程序
2020/02/19 Python
基于Python实现视频的人脸融合功能
2020/06/12 Python
Pandas的Apply函数具体使用
2020/07/21 Python
JupyterNotebook 输出窗口的显示效果调整实现
2020/09/22 Python
python 爬虫请求模块requests详解
2020/12/04 Python
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
2014全国两会大学生学习心得体会
2014/03/10 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
保护环境倡议书100字
2014/05/19 职场文书
目标责任书格式
2014/07/28 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
庆祝儿童节标语
2014/10/09 职场文书
民间借贷被告代理词
2015/05/23 职场文书
医院消毒隔离制度
2015/08/05 职场文书