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

5.1 Bootstrap下拉菜单

本节我们先介绍Bootstrap下拉菜单组件,主要包括标签、对齐方式、禁用和子菜单等方面的内容。

5.1.1 标签

顾名思义,下拉菜单是可用于展示可切换、有关联的菜单链接。创建下拉菜单需要使用上一章介绍过的HTML的列表标签(<ul>-<li>),且下拉菜单的触发器和整个下拉菜单都需要包裹在.dropdown类中,又或者声明为“position: relative; ”的其他页面元素中。

【代码5-1】是一个基本的下拉菜单组件设计(详见源代码ch05目录中ch05.dropdownMenu.html文件):

        01  <div class="bs-docs-example">
        02       <div class="dropdown clearfix">
        03           <ul class="dropdown-menu" role="menu" aria-
    labelledby="dropdownMenu">
        04              <li><a tabindex="-1" href="#">下拉菜单A</a></li>
        05              <li><a tabindex="-1" href="#">下拉菜单B</a></li>
        06              <li><a tabindex="-1" href="#">下拉菜单C</a></li>
        07               <li class="divider"></li>
        08              <li><a tabindex="-1" href="#">下拉菜单分割线D</a></li>
        09              <li><a tabindex="-1" href="#">下拉菜单分割线E</a></li>
        10           </ul>
        11       </div>
        12  </div>

【代码5-1】展示了一个基本下拉菜单组件,其中第03~10行代码通过<ul><li>列表标签创建了下拉菜单的基本元素,在第03行代码中通过为<ul>标签增加.dropdown-menu类将其定义为下拉菜单,页面效果如图5.1所示。

图5.1 基本下拉菜单

5.1.2 对齐方式

Bootstrap框架可以为下拉菜单选择不同的对齐方式,默认下拉菜单是左对齐的,如果使用.pull-right类则可以实现右对齐。

【代码5-2】是一个下拉菜单对齐方式的设计(详见源代码ch05目录中ch05.dropdownAlignMenu.html文件):

        01  <div class="dropdown clearfix">
        02       <ul class="dropdown-menu pull-left " role="menu" aria-
    labelledby="dropdownMenu">
        03          <li><a tabindex="-1" href="#">左对齐下拉菜单A</a></li>
        04          <li><a tabindex="-1" href="#">左对齐下拉菜单B</a></li>
        05           <li class="divider"></li>
        06          <li><a tabindex="-1" href="#">左对齐下拉菜单分割线C</a></li>
        07       </ul>
        08  </div>
        09  <div class="dropdown clearfix">
        10       <ul class="dropdown-menu pull-right" role="menu" aria-
    labelledby="dropdownMenu">
        11          <li><a tabindex="-1" href="#">右对齐下拉菜单A</a></li>
        12          <li><a tabindex="-1" href="#">右对齐下拉菜单B</a></li>
        13           <li class="divider"></li>
        14          <li><a tabindex="-1" href="#">右对齐下拉菜单分割线C</a></li>
        15       </ul>
        16  </div>

上面的代码展示了页面主体的段落样式,其中第01~08行代码定义的是左对齐下拉菜单,其中第09~16行代码定义的是右对齐下拉菜单,页面效果如图5.2所示。

图5.2 下拉菜单对齐方式

5.1.3 禁用

如果需要禁用下拉菜单的某一项,可以在<li>标签内增加.disabled类来实现。

【代码5-3】是一个禁用下拉菜单项的设计(详见源代码ch05目录中ch05.disabledDropdownMenu.html文件):

        01  <div class="bs-docs-example">
        02       <div class="dropdown clearfix">
        03           <ul class="dropdown-menu" role="menu" aria-
    labelledby="dropdownMenu">
        04              <li><a tabindex="-1" href="#">下拉菜单A</a></li>
        05              <li class="disabled"><a tabindex="-1" href="#">下拉菜单
    B</a></li>
        06              <li><a tabindex="-1" href="#">下拉菜单C</a></li>
        07               <li class="divider"></li>
        08              <li class="disabled"><a tabindex="-1" href="#">下拉菜单
    分割线D</a></li>
        09              <li><a tabindex="-1" href="#">下拉菜单分割线E</a></li>
        10           </ul>
        11       </div>
        12  </div>

上面的代码演示了禁用下拉菜单项的设计,其中在第05行与第08行代码为<li>标签元素增加了.disabled类,页面效果如图5.3所示。

图5.3 禁用下拉菜单项

5.1.4 子下拉菜单

Bootstrap框架还支持为下拉菜单定义子下拉菜单,通过一些简单的定义就可以实现。另外,默认子菜单是向右下方弹出的,还可以通过定义样式实现向上弹出或者向左弹出子菜单。下面看示例代码。

【代码5-4】是一个增加默认子下拉菜单项的设计(详见源代码ch05目录中ch05.defaultSubDropdownMenu.html文件):

        01  <div class="bs-docs-example">
        02       <div class="dropdown clearfix">
        03           <ul class="dropdown-menu" role="menu" aria-
    labelledby="dropdownMenu">
        04              <li><a tabindex="-1" href="#">下拉菜单A</a></li>
        05              <li><a tabindex="-1" href="#">下拉菜单B</a></li>
        06               <li class="divider"></li>
        07               <li class="dropdown-submenu">
        08                  <a tabindex="-1" href="#">弹出子下拉菜单</a>
        09                    <ul class="dropdown-menu">
        10                      <li><a tabindex="-1" href="#">子下拉菜单A</a></li>
        11                      <li><a tabindex="-1" href="#">子下拉菜单B</a></li>
        12                      <li><a tabindex="-1" href="#">子下拉菜单C</a></li>
        13                    </ul>
        14               </li>
        15           </ul>
        16       </div>
        17  </div>

【代码5-4】演示了定义子下拉菜单项的设计,其中在第07~14行代码通过增加<ul><li>标签组实现了一个子下拉菜单,页面效果如图5.4所示。

图5.4 默认子下拉菜单

【代码5-5】是一个向上弹出子下拉菜单项的设计(详见源代码ch05目录中ch05.subDropupMenu.html文件):

        01  <div class="bs-docs-example">
        02       <div class="dropup clearfix">
        03           <ul class="dropdown-menu" role="menu" aria-
    labelledby="dropdownMenu">
        04              <li><a tabindex="-1" href="#">下拉菜单A</a></li>
        05              <li><a tabindex="-1" href="#">下拉菜单B</a></li>
        06               <li class="divider"></li>
        07               <li class="dropdown-submenu">
        08                  <a tabindex="-1" href="#">向上弹出子下拉菜单</a>
        09                    <ul class="dropdown-menu">
        10                      <li><a tabindex="-1" href="#">子下拉菜单A</a></li>
        11                      <li><a tabindex="-1" href="#">子下拉菜单B</a></li>
        12                      <li><a tabindex="-1" href="#">子下拉菜单C</a></li>
        13                    </ul>
        14               </li>
        15           </ul>
        16       </div>
        17  </div>

【代码5-5】演示了定义向上弹出子下拉菜单项的设计,其中在第02行代码中通过定义.dropup类实现了向上弹出子下拉菜单的样式,页面效果如图5.5所示。

图5.5 向上弹出子下拉菜单

【代码5-6】是一个向左弹出子下拉菜单项的设计(详见源代码ch05目录中ch05.subDropleftMenu.html文件):

        01  <div class="bs-docs-example">
        02       <div class="dropdown clearfix">
        03          <ul class="dropdown-menu pull-right" role="menu" aria-
    labelledby="dropdownMenu">
        04              <li><a tabindex="-1" href="#">下拉菜单A</a></li>
        05              <li><a tabindex="-1" href="#">下拉菜单B</a></li>
        06               <li class="divider"></li>
        07               <li class="dropdown-submenu pull-left">
        08                  <a tabindex="-1" href="#">向左弹出子下拉菜单</a>
        09                    <ul class="dropdown-menu">
        10                      <li><a tabindex="-1" href="#">子下拉菜单A</a></li>
        11                      <li><a tabindex="-1" href="#">子下拉菜单B</a></li>
        12                      <li><a tabindex="-1" href="#">子下拉菜单C</a></li>
        13                    </ul>
        14               </li>
        15           </ul>
        16       </div>
        17  </div>

【代码5-6】演示了定义向左弹出子下拉菜单项的设计,为了演示效果先在第03行代码中通过定义.pull-right类将整个下拉菜单右对齐,然后在第07行代码通过定义.pull-left类实现了向左弹出子下拉菜单的样式,页面效果如图5.6所示。

图5.6 向左弹出子下拉菜单