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实现背景颜色渐变让图片不再是唯一的实现方式
Dec 18 HTML / CSS
关于CSS Tooltips(鼠标经过时显示)的效果
Apr 10 HTML / CSS
css3动画效果小结(推荐)
Jul 25 HTML / CSS
详解css3 flex弹性盒自动铺满写法
Sep 17 HTML / CSS
使用 HTML5 Canvas 制作水波纹效果点击图片就会触发
Sep 15 HTML / CSS
HTML5学习笔记之History API
Feb 26 HTML / CSS
推荐10个HTML5响应式框架
Feb 25 HTML / CSS
canvas实现按住鼠标移动绘制出轨迹的示例代码
Feb 05 HTML / CSS
HTML文本属性&amp;颜色控制属性的实现
Dec 17 HTML / CSS
AmazeUI 网格的实现示例
Aug 13 HTML / CSS
使用canvas对video视频某一刻截图功能
Sep 25 HTML / CSS
HTML中的表单元素介绍
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
ezSQL PHP数据库操作类库
2010/05/16 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
2012/01/10 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
php显示指定目录下子目录的方法
2015/03/20 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
javascript学习之闭包分析
2010/12/02 Javascript
Javascript 是你的高阶函数(高级应用)
2015/06/15 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
vue.js todolist实现代码
2017/10/29 Javascript
vue中锚点的三种方法
2018/07/06 Javascript
layui中table表头样式修改方法
2018/08/15 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
vue实现简单的日历效果
2020/09/24 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
2020/07/27 Javascript
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
python XlsxWriter模块创建aexcel表格的实例讲解
2018/05/03 Python
Python如何使用OS模块调用cmd
2020/02/27 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
Selenium之模拟登录铁路12306的示例代码
2020/07/31 Python
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
关于Java String的一道面试题
2013/09/29 面试题
论文指导教师评语
2014/04/28 职场文书
党的群众路线学习材料
2014/05/16 职场文书
会计演讲稿范文
2014/05/23 职场文书
个人授权委托书范本
2014/09/14 职场文书
简历自荐信范文
2015/03/09 职场文书