5-21 导航加下拉菜单(二级导航)
本节编程练习不计算学习进度,请电脑登录imooc.com操作

导航加下拉菜单(二级导航)

前面介绍的都是使用Bootstrap框架制作一级导航,但很多时候,在Web页面中是离不开二级导航的效果。那么在Bootstrap框架中制作二级导航就更容易了。只需要将li当作父容器,使用类名“dropdown”,同时在li中嵌套另一个列表ul,使用前面介绍下拉菜单的方法就可以:

<ul class="nav nav-pills">
     <li class="active"><a href="##">首页</a></li>
     <li class="dropdown">
        <a href="##" class="dropdown-toggle" data-toggle="dropdown">教程<span class="caret"></span></a>
        <ul class="dropdown-menu">
            <li><a href="##">CSS3</a></li>
            …
       </ul>
     </li>
     <li><a href="##">关于我们</a></li>
</ul>

运行效果如下:

通过浏览器调试工具,不难发现,点击有二级导航的菜单项,会自动添加“open”类名,再次点击就会删除添加的“open”类名:

简单点来说,就是依靠这个类名来控制二级导航显示与否,并且设置了背景色和边框:

/*源码查看bootstrap.css文件第3479行~3484行*/

.nav .open > a,
.nav .open >a:hover,
.nav .open >a:focus {
background-color: #eee;
border-color: #428bca;
}

大家回忆一下,在制作下拉菜单时,可以用分隔线,那么在二级导航中是否可以呢?我们一起来看看:

不用再说太多,只需要添加“<li class=”nav-divider”></li>”这样的一个空标签就可以了。

运行效果如下:

/*源码请查看bootstrap.css文件第3485行~第3490行*/

.nav .nav-divider {
  height: 1px;
  margin: 9px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}

任务

我来试试;完成下面任务

编写代码实现“tab型二级导航”,效果图如下:

备注:这一小节没有正确性验证,请查看结果窗口与任务所给的结果图片是否一致,从而判断输入代码是否正确。

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>等分按钮</title>
  6. <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
  7. <link rel="stylesheet" href="style.css">
  8. </head>
  9. <body>
  10. <ul class="nav nav-pills">
  11. <li class="active"><a href="##">首页</a></li>
  12. <li class="dropdown">
  13. <a href="##" class="dropdown-toggle" data-toggle="dropdown">教程<span class="caret"></span></a>
  14. <ul class="dropdown-menu">
  15. <li><a href="##">CSS3</a></li>
  16. <li><a href="##">Sass</a></li>
  17. <li><a href="##">jQuery</a></li>
  18. <li><a href="##">Responsive</a></li>
  19. </ul>
  20. </li>
  21. <li><a href="##">关于我们</a></li>
  22. </ul>
  23. <br />
  24.  
  25. <script src="http://img1.sycdn.imooc.com//down/53c6484f00013d9300000000.js"></script>
  26. <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
  27. </body>
  28. </html>
  1. body{margin:30px;padding:30px;}
下一节