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 相关文章推荐
css动画效果之animation的常用样式
Mar 09 HTML / CSS
css3绘制百度的小度熊
Oct 29 HTML / CSS
CSS3 please 跨浏览器的CSS3产生器
Mar 14 HTML / CSS
css3 position fixed固定居中问题解决方案
Aug 19 HTML / CSS
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
Feb 27 HTML / CSS
LocalStorage记住用户和密码功能
Jul 24 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
Sep 07 HTML / CSS
HTML5 解决苹果手机不能自动播放音乐问题
Dec 27 HTML / CSS
html5 canvas的绘制文本自动换行的示例代码
Sep 17 HTML / CSS
浅析canvas元素的html尺寸和css尺寸对元素视觉的影响
Jul 22 HTML / CSS
h5移动端调用支付宝、微信支付的实现
Jun 08 HTML / CSS
CSS中实现动画效果-附案例
Feb 28 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
php中上传文件的的解决方案
2018/09/25 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
如何在Web页面上直接打开、编辑、创建Office文档
2007/03/12 Javascript
jQuery中创建实例与原型继承揭秘
2011/12/21 Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
2013/01/23 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
JS去除右边逗号的简单方法
2013/07/03 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
document.addEventListener使用介绍
2014/03/07 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
2015/08/20 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
2016/04/03 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
python使用pip安装SciPy、SymPy、matplotlib教程
2019/11/20 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
2020/04/01 Python
如何用tempfile库创建python进程中的临时文件
2021/01/28 Python
美国中西部家用医疗设备商店:Med Mart(轮椅、踏板车、升降机等)
2019/04/26 全球购物
函授教育个人学习的自我评价
2013/12/31 职场文书
学生励志演讲稿
2014/01/06 职场文书
社区活动总结报告
2014/05/05 职场文书
村容村貌整治方案
2014/05/21 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
综合管理员岗位职责
2015/02/11 职场文书
复试通知单模板
2015/04/24 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
利用python做表格数据处理
2021/04/13 Python
Apache Pulsar结合Hudi构建Lakehouse方案分析
2022/03/31 Servers