6-2 基础导航条
本节编程练习不计算学习进度,请电脑登录imooc.com操作

基础导航条

在Bootstrap框中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多。我们先来看导航条中最基础的一个——基础导航条。

使用方法:

在制作一个基础导航条时,主要分以下几步:

第一步:首先在制作导航的列表(<ul class=”nav”>)基础上添加类名“navbar-nav

第二步:在列表外部添加一个容器(div),并且使用类名“navbar”和“navbar-default

示例查看右侧代码编辑(10-19行)。

“.navbar”样式的主要功能就是设置左右padding和圆角等效果,但他和颜色相关的样式没有进行任何的设置。其主要源码如下:

/*源码查看bootstrap.css文件第3642行~第3647行*/

.navbar {
  position: relative;
  min-height: 50px;
  margin-bottom: 20px;
  border: 1px solid transparent;
}

原理分析:

而导航条的颜色都是通过“.navbar-default”来进行控制:

/*源码查看bootstrap.css文件第3940行~第3943行*/

.navbar-default {
  background-color: #f8f8f8;
  border-color: #e7e7e7;
}

navbar-nav样式是在导航.nav的基础上重新调整了菜单项的浮动与内外边距。同时也不包括颜色等样式设置,源码请查看bootstrap.css文件第3785行~第3830行,我们把代码节选出来放入右侧bootstrap.css中。

而颜色和其他样式是通过配合父容器“navbar-default”来一起实现:

/*源码请查看bootstrap.css文件第3955行~第3974行*/

.navbar-default .navbar-nav> li > a {
  color: #777;
}
.navbar-default .navbar-nav> li >a:hover,
.navbar-default .navbar-nav> li >a:focus {
  color: #333;
  background-color: transparent;
}
.navbar-default .navbar-nav> .active > a,
.navbar-default .navbar-nav> .active >a:hover,
.navbar-default .navbar-nav> .active >a:focus {
  color: #555;
  background-color: #e7e7e7;
}
.navbar-default .navbar-nav> .disabled > a,
.navbar-default .navbar-nav> .disabled >a:hover,
.navbar-default .navbar-nav> .disabled >a:focus {
  color: #ccc;
  background-color: transparent;
}

任务

  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. </head>
  8.  
  9. <body>
  10. <!--代码-->
  11. <div class="navbar navbar-default" role="navigation">
  12. <ul class="nav navbar-nav">
  13. <li class="active"><a href="##">网站首页</a></li>
  14. <li><a href="##">系列教程</a></li>
  15. <li><a href="##">名师介绍</a></li>
  16. <li><a href="##">成功案例</a></li>
  17. <li><a href="##">关于我们</a></li>
  18. </ul>
  19. </div>
  20. <!--代码-->
  21. <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
  22. <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
  23.  
  24. </body>
  25. </html>
  1. /*下面是节选bootstrap中第3785行~第3830行代码*/
  2. .navbar-nav {
  3. margin: 7.5px -15px;
  4. }
  5. .navbar-nav> li > a {
  6. padding-top: 10px;
  7. padding-bottom: 10px;
  8. line-height: 20px;
  9. }
  10. @media (max-width: 767px) {
  11. .navbar-nav .open .dropdown-menu {
  12. position: static;
  13. float: none;
  14. width: auto;
  15. margin-top: 0;
  16. background-color: transparent;
  17. border: 0;
  18. box-shadow: none;
  19. }
  20. .navbar-nav .open .dropdown-menu > li > a,
  21. .navbar-nav .open .dropdown-menu .dropdown-header {
  22. padding: 5px 15px 5px 25px;
  23. }
  24. .navbar-nav .open .dropdown-menu > li > a {
  25. line-height: 20px;
  26. }
  27. .navbar-nav .open .dropdown-menu > li >a:hover,
  28. .navbar-nav .open .dropdown-menu > li >a:focus {
  29. background-image: none;
  30. }
  31. }
  32. @media (min-width: 768px) {
  33. .navbar-nav {
  34. float: left;
  35. margin: 0;
  36. }
  37. .navbar-nav> li {
  38. float: left;
  39. }
  40. .navbar-nav> li > a {
  41. padding-top: 15px;
  42. padding-bottom: 15px;
  43. }
  44. .navbar-nav.navbar-right:last-child {
  45. margin-right: -15px;
  46. }
  47. }
下一节