今天小编跟大家讲解下有关css3与html5实现响应式导航菜单(导航栏)效果分享 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关css3与html5实现响应式导航菜单(导航栏)效果分享 的相关资料,希望小伙伴们看了有所帮助。
此方法可以应用到有特别多的链接菜单项目中 特别在移动项目中 它可以将所有菜单转换成一个按钮式的下拉菜单。
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对菜单进行右对齐和居中对齐。 .nav.right ul { text-align: right; } .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; margin: 0; } .nav .current { display: block; } .nav a { display: block; padding: 5px 5px 5px 32px; text-align: left; } .nav .current a { background: none; color: #666; } .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; } .nav.right ul { left: auto; right: 0; } .nav.center ul { left: 50%; margin-left: -90px; } }
来源:爱蒂网