Bootstrap Web设计与开发实战
上QQ阅读APP看书,第一时间看更新

5.4 Bootstrap导航

本节介绍Bootstrap框架的导航组件,在Bootstrap框架中所有导航组件均使用.nav类来实现,针对不同类型的导航再增加相应的样式即可。

5.4.1 默认标签导航

默认标签导航就是基于<ul><li>标签组并应用.nav-tabs类设计而成的,下面看一段代码示例。

【代码5-11】是一个默认样式标签导航的设计(详见源代码ch05目录中ch05.defaultNav.html文件):

        01  <div class="bs-docs-example">
        02       <ul class="nav nav-tabs">
        03          <li class="active"><a href="#">首页</a></li>
        04          <li><a href="#">新闻</a></li>
        05          <li><a href="#">财经</a></li>
        06          <li><a href="#">体育</a></li>
        07          <li><a href="#">论坛</a></li>
        08       </ul>
        09  </div>

【代码5-11】中第02行代码通过.nav类和.nav-tabs类设计了一个默认标签导航,页面效果如图5.11所示。

图5.11 默认标签导航

5.4.2 pills标签导航

pills标签导航就是基于<ul><li>标签组并应用.nav-pills类设计而成的,下面看一段代码示例。

【代码5-12】是一个pills标签导航的设计(详见源代码ch05目录中ch05.defaultNav.html文件):

        01  <div class="bs-docs-example">
        02       <ul class="nav nav-pills">
        03          <li class="active"><a href="#">首页</a></li>
        04          <li><a href="#">新闻</a></li>
        05          <li><a href="#">财经</a></li>
        06          <li><a href="#">体育</a></li>
        07          <li><a href="#">论坛</a></li>
        08       </ul>
        09  </div>

【代码5-12】中第02行代码通过.nav类和.nav-pills类设计了一个默认标签导航,页面效果如图5.12所示。

图5.12 pills标签导航

5.4.3 堆叠式标签导航

堆叠式标签导航是区别于水平排列标签导航的设计,是通过.nav-stacked类设计而成的,下面看一段代码示例。

【代码5-13】是一个堆叠式标签导航的设计(详见源代码ch05目录中ch05.stackedNav.html文件):

        01  <div class="bs-docs-example">
        02       <ul class="nav nav-tabs nav-stacked">
        03          <li class="active"><a href="#">首页</a></li>
        04          <li><a href="#">新闻</a></li>
        05          <li><a href="#">财经</a></li>
        06          <li><a href="#">体育</a></li>
        07          <li><a href="#">论坛</a></li>
        08       </ul>
        09  </div>

【代码5-13】中第02行代码通过.nav类、.nav-tabs和.nav-stacked类设计了一个堆叠式标签导航,页面效果如图5.13所示。

图5.13 堆叠式标签导航

5.4.4 下拉菜单式标签导航

如果想在标签导航中添加下拉菜单,可以通过添加.dropdown-menu类设计而成,下面看一段代码示例。

【代码5-14】是一个下拉菜单式标签导航的设计(详见源代码ch05目录中ch05.dropdownMenuNav.html文件):

        01  <div class="bs-docs-example">
        02       <ul class="nav nav-tabs">
        03          <li class="active"><a href="#">首页</a></li>
        04          <li><a href="#">新闻</a></li>
        05          <li><a href="#">财经</a></li>
        06           <li class="dropdown">
        07              <a class="dropdown-toggle" href="#">体育 <b
    class="caret"></b></a>
        08               <ul class="dropdown-menu">
        09                  <li><a href="#">足球</a></li>
        10                  <li><a href="#">篮球</a></li>
        11                  <li><a href="#">排球</a></li>
        12                    <li class="divider"></li>
        13                  <li><a href="#">游泳</a></li>
        14               </ul>
        15           </li>
        16          <li><a href="#">论坛</a></li>
        17       </ul>
        18  </div>

【代码5-14】中第06~15行代码通过将一个下拉菜单加入标签导航,实现了一个下拉菜单式标签导航,页面效果如图5.14所示。

图5.14 下拉菜单式标签导航

5.4.5 导航列表

导航列表也是一款比较常用的页面元素,在Bootstrap框架中可以通过添加.nav-list类设计实现,下面看一段代码示例。

【代码5-15】是一个导航列表的样式设计(详见源代码ch05目录中ch05.listNav.html文件):

        01  <div class="bs-docs-example">
        02       <div class="well">
        03           <ul class="nav nav-list">
        04              <li class="nav-header">新闻</li>
        05              <li class="active"><a href="#">财经</a></li>
        06              <li><a href="#">军事</a></li>
        07              <li><a href="#">娱乐</a></li>
        08              <li class="nav-header">体育</li>
        09              <li><a href="#">足球</a></li>
        10              <li><a href="#">篮球</a></li>
        11               <li class="divider"></li>
        12              <li><a href="#">排球</a></li>
        13           </ul>
        14       </div> <! -- /well -->
        15  </div>

【代码5-15】中第03~13行代码通过为<ul>标签增加.nav-list类定义了一个导航列表;同时,第04行代码和第08行代码通过为<li>标签增加.nav-header类定义了导航列表分类标题;页面效果如图5.15所示。

图5.15 导航列表

5.4.6 标签页式导航

标签页式导航类似于桌面系统中的Tab界面,只不过其是在网页中实现的,而且在网页中还可以将导航固定在上下左右4个位置方向,设计起来非常灵活方便。在Bootstrap框架中,可以通过在导航组件中添加.tabbable类、.nav-tabs类、.tab-content类和.tab-pane类而设计实现。下面看一段代码示例。

【代码5-16】是一个标签页式导航的设计(详见源代码ch05目录中ch05.tabsNav.html文件):

        01  <div class="bs-docs-example">
        02       <div class="tabbable" style="margin-bottom: 8px; ">
        03           <ul class="nav nav-tabs">
        04              <li class="active"><a href="#tab1" data-toggle="tab">新
    闻</a></li>
        05              <li><a href="#tab2" data-toggle="tab">财经</a></li>
        06              <li><a href="#tab3" data-toggle="tab">体育</a></li>
        07              <li><a href="#tab4" data-toggle="tab">娱乐</a></li>
        08              <li><a href="#tab5" data-toggle="tab">论坛</a></li>
        09           </ul>
        10           <div class="tab-content">
        11               <div class="tab-pane active" id="tab1">
        12                  <p>新闻标签页.</p>
        13               </div>
        14               <div class="tab-pane" id="tab2">
        15                  <p>财经标签页.</p>
        16               </div>
        17               <div class="tab-pane" id="tab3">
        18                  <p>体育标签页.</p>
        19               </div>
        20               <div class="tab-pane" id="tab4">
        21                  <p>娱乐标签页.</p>
        22               </div>
        23               <div class="tab-pane" id="tab5">
        24                  <p>论坛标签页.</p>
        25               </div>
        26           </div>
        27       </div> <! -- /tabbable -->
        28  </div>

关于【代码5-16】的分析如下:

第02~27行代码通过.tabbable类定义了一个标签页式导航。

第03~09行代码通过为<ul>标签增加.nav-tabs类定义了标签页式导航;其中,第03~08行代码定义的一组<li>标签内,通过href属性的定义值与后面<div>标签的id值一一进行对应。

第10~26行代码通过为<div>标签增加.tab-content类定义了一组标签页;第11~25行代码在每一个<div>标签内定义了.tab-pane类,同时定义的每个id值与第03~08行代码<li>标签内定义的href属性值一一进行对应。

页面效果如图5.16所示。

图5.16 标签页式导航