导航的二级菜单弹出的代码编写(第一部分,PC部分)
通过JavaScript来进行导航的添加,实际上就是对position的绝对定位和相对定位的理解。
分为两个方面,一个PC端的,一个手机端的。
通过响应式来处理手机端的代码样式改写。
我还是针对本站http://study.caisangzi.com进行改写导航改写:
pc端原导航代码:
<nav class="pc"> <ul class="clearfix"> <li><a href="/">首页</a></li> <?php foreach ($menu as $k => $v): ?> <li> <a href="<?php echo $v['url']; ?>"><?php echo $v['name']; ?></a> </li> <?php endforeach ?> </ul> </nav>
然后我们要在li的层级里面加上一个绝对定位的块,作为弹出层。
<nav class="pc"> <ul class="clearfix"> <li><a href="/">首页</a></li> <?php foreach ($menu as $k => $v): ?> <li> <a href="<?php echo $v['url']; ?>"><?php echo $v['name']; ?></a> <div class="pop"> <ul> <li><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> </div> </li> <?php endforeach ?> </ul> </nav>
然后我们为了操作容易,加上了一些代码样式,同时把主导航的li,属性加上position:relative;
nav ul li {
position:relative;
float: left;
width: auto;
margin: 0 10px;
}
nav .pop {
display: none;
position: absolute;
top: 0;
left: 0;
}
nav .pop .children {
display: block;
}html代码
<nav class="pc"> <ul class="clearfix"> <li><a href="/">首页</a></li> <?php foreach ($menu as $k => $v): ?> <li> <a href="<?php echo $v['url']; ?>"><?php echo $v['name']; ?></a> <div class="pop"> <ul class="clearfix"> <li class="children"><a href="">二级菜单</a></li> <li class="children"><a href="">二级菜单</a></li> <li class="children"><a href="">二级菜单</a></li> <li class="children"><a href="">二级菜单</a></li> <li class="children"><a href="">二级菜单</a></li> </ul> </div> </li> <?php endforeach ?> </ul> </nav>
然后我们修正弹出层的样式
nav ul li:hover .pop{
display: block;
}
nav .pop {
z-index: 299;
display: none;
position: absolute;
background: #fff;
top: 50px;
left: 0;
box-shadow: 10px 10px 5px #888888;
}
nav .pop ul {
color: #fff;
width: auto;
line-height: 35px;
min-width: 150px;
}
nav .pop .children {
float: none;
position: static;
display: block;
text-align: left;
}
nav .pop .children a {
text-align: center;
color: #333;
font-size: 0.8em;
}
使用伪类的方式来处理是比较快的方案。
nav ul li:hover
这样的话我们的样式就完全完毕了,如果导航迟迟显示不出来,建议查看父类是否有overflow:hidden;的情况。
PC部分就先到这里,然后我会继续移动端的修改。
发布时间:2017-09-27,10:43:39
导航在一个网站中的重要性不言而喻,所以,这次我们来处理导航和二级导航,菜单的编写。
