Bootstrap-菜單,導航,按鈕


1、下拉菜單(基本用法)

在Bootstrap框架中的下拉菜單組件是一個獨立的組件,根據不同的版本,它對應的文件:

  ☑  LESS版本:對應的源碼文件為 dropdowns.less

  ☑  Sass版本:對應的源碼文件為 _dropdowns.scss

  ☑  編譯后的Bootstrap版本:查看bootstrap.css文件第3004行~第3130行

在使用Bootstrap框架的下拉菜單時,必須調用Bootstrap框架提供的bootstrap.js文件。當然,如果你使用的是未編譯版本,在js文件夾下你能找到一個名為“dropdown.js”的文件。你也可以調用這個js文件。不過在我們的教程中,我們統一調用壓縮好的“bootstrap.min.js”文件

因為Bootstrap的組件交互效果都是依賴於jQuery庫寫的插件,所以在使用bootstrap.min.js之前一定要先加載jquery.min.js才會生效果

使用方法:

在使用Bootstrap框架中的下拉菜單組件時,其結構運用的正確與否非常的重要,如果結構和類名未使用正確,直接影響組件是否能正常運用。我們來簡單的看看:

1、使用一個名為“dropdown”的容器包裹了整個下拉菜單元素,示例中為:

<div class="dropdown"></div>

2、使用了一個<button>按鈕做為父菜單,並且定義類名“dropdown-toggle”和自定義“data-toggle”屬性,且值必須和最外容器類名一致,此示例為:

data-toggle="dropdown"

3、下拉菜單項使用一個ul列表,並且定義一個類名為“dropdown-menu”,此示例為:

<ul class="dropdown-menu">

<div class="dropdown">
  <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown">
    下拉菜單
    <span class="caret"></span>
  </button>
  <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜單項</a></li>
    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜單項</a></li>
    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜單項</a></li>
    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜單項</a></li>
  </ul>
</div> 

2、下拉菜單(下拉分隔線、菜單標題)

在Bootstrap框架中的下拉菜單還提供了下拉分隔線,假設下拉菜單有兩個組,那么組與組之間可以通過添加一個空的<li>,並且給這個<li>添加類名“divider”來實現添加下拉分隔線的功能

<li role="presentation" class="divider"></li>
<li role="presentation" class="dropdown-header">第一部分菜單頭部</li>

3、下拉菜單(對齊方式,菜單項狀態)

Bootstrap框架中下拉菜單默認是左對齊,如果你想讓下拉菜單相對於父容器右對齊時,可以在“dropdown-menu”上添加一個“pull-right”或者“dropdown-menu-right”類名

 <ul class="dropdown-menu pull-right" role="menu" aria-labelledby="dropdownMenu1">

下拉菜單項的默認的狀態(不用設置)有懸浮狀態(:hover)和焦點狀態(:focus)

下拉菜單項除了上面兩種狀態,還有當前狀態(.active)和禁用狀態(.disabled)。這兩種狀態使用方法只需要在對應的菜單項上添加對應的類名

<li role="presentation" class="active"><a role="menuitem" tabindex="-1" href="#">下拉菜單項</a></li>
<li role="presentation" class="disabled"><a role="menuitem" tabindex="-1" href="#">下拉菜單項</a></li>

4、按鈕(按鈕組)

<div class="btn-group">
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-step-backward"></span></button>
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-fast-backward"></span></button>
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-backward"></span></button>
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-play"></span></button>
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-pause"></span></button>
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-stop"></span></button>
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-forward "></span></button>
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-fast-forward"></span></button>
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-step-forward"></span></button>
</div>

 

5、按鈕(按鈕工具欄)

將按鈕組分組排列在一起,比如說復制、剪切和粘貼一組;左對齊、中間對齊、右對齊和兩端對齊一組

需要將按鈕組“btn-group”按組放在一個大的容器“btn-toolbar”中

<div class="btn-toolbar">
  <div class="btn-group">
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-align-left"></span></button>
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-align-center"></span></button>
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-align-right"></span></button>
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-align-justify"></span></button>
  </div>
  <div class="btn-group">
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-indent-left"></span></button>
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-indent-right"></span></button>
  </div>
  <div class="btn-group">
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-font"></span></button>
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-bold"></span></button>
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-italic"></span></button>
  </div>
  <div class="btn-group">
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-text-height"></span></button>
    <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-text-width"></span></button>
  </div>
</div>

6、按鈕(嵌套分組,垂直分組,等分按鈕)

我們常把下拉菜單和普通的按鈕組排列在一起,實現類似於導航菜單的效果

 

<div class="btn-group">
  <button class="btn btn-default" type="button">首頁</button>
  <button class="btn btn-default" type="button">產品展示</button>
  <button class="btn btn-default" type="button">案例分析</button>
  <button class="btn btn-default" type="button">聯系我們</button>
  <div class="btn-group">
      <button class="btn btn-default dropdown-toggle" data-toggle="dropdown" type="button">關於我們<span class="caret"></span></button>
    <ul class="dropdown-menu">
        <li><a href="##">公司簡介</a></li>
        <li><a href="##">企業文化</a></li>
        <li><a href="##">組織結構</a></li>
        <li><a href="##">客服服務</a></li>
    </ul>
  </div>
</div>

垂直顯示的效果。在Bootstrap框架中也提供了這樣的風格。我們只需要把水平分組的“btn-group”類名換成“btn-group-vertical”即可

<div class="btn-group-vertical">

等分按鈕的效果在移動端上特別的實用。整個按鈕組寬度是容器的100%,而按鈕組里面的每個按鈕平分整個容器寬度。例如,如果你按鈕組里面有五個按鈕,那么每個按鈕是20%的寬度,如果有四個按鈕,那么每個按鈕是25%寬度,以此類推。

等分按鈕也常被稱為是自適應分組按鈕,其實現方法也非常的簡單,只需要在按鈕組“btn-group”上追加一個“btn-group-justified”類名

<div class="btn-wrap">
    <div class="btn-group btn-group-justified">
    <a class="btn btn-default" href="#">首頁</a>
    <a class="btn btn-default" href="#">產品展示</a>
    <a class="btn btn-default" href="#">案例分析</a>
    <a class="btn btn-default" href="#">聯系我們</a>
  </div>
</div>

在制作等分按鈕組時,請盡量使用<a>標簽元素來制作按鈕,因為使用<button>標簽元素時,使用display:table在部分瀏覽器下支持並不友好

7、按鈕的向下向上三角形

按鈕的向下三角形,我們是通過在<button>標簽中添加一個“<span>”標簽元素,並且命名為“caret”:

這個三角形完全是通過CSS代碼來實現的:

.caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 2px;
  vertical-align: middle;
  border-top: 4px solid;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
}

三角方向需要朝上顯示,實現方法:需要在“.btn-group”類上追加“dropup”類名(這也是做向上彈起下拉菜單要用的類名

.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
  content: "";
  border-top: 0;
  border-bottom: 4px solid;
}

向上三角與向下三角的區別:其實就是改變了一個border-bottom的值

8、導航(基礎樣式)

在Bootstrap框架將導航獨立出來成為一個導航組件,根據不同的版本,可以找到對應的源碼:

   ☑ LESS版本:對應的源文件是navs.less

   ☑ Sass版本:對應的源文件是_navs.scss

   ☑ 編譯后版本:對應源碼是bootstrap.css文件第3450行~第3641行

導航基礎樣式

Bootstrap框架中制作導航條主要通過“.nav”樣式。默認的“.nav”樣式不提供默認的導航樣式,必須附加另外一個樣式才會有效,比如“nav-tabs”、“nav-pills”之類。比如右側代碼編輯器中就有一個tab導航條的例子,他的實現方法就是為ul標簽加入.nav和nav-tabs兩個類樣式

<ul class="nav nav-tabs">
    <li><a href="##">Home</a></li>
     <li><a href="##">CSS3</a></li>
     <li><a href="##">Sass</a></li>
     <li><a href="##">jQuery</a></li>
     <li><a href="##">Responsive</a></li>
</ul>
<br />
<ul class="nav nav-tabs">
    <li class="active"><a href="##">Home</a></li>
     <li><a href="##">CSS3</a></li>
     <li><a href="##">Sass</a></li>
     <li><a href="##">jQuery</a></li>
     <li><a href="##">Responsive</a></li>
</ul>
<br />
 <ul class="nav nav-tabs">
    <li class="active"><a href="##">Home</a></li>
     <li><a href="##">CSS3</a></li>
     <li><a href="##">Sass</a></li>
     <li><a href="##">jQuery</a></li>
     <li class="disabled"><a href="##">Responsive</a></li>
 </ul>

9、膠囊形(pills)導航、垂直堆疊的導航、自適應導航

只需要把類名“nav-tabs”換成“nav-pills”即可

制作垂直堆疊導航只需要在“nav-pills”的基礎上添加一個“nav-stacked”類名即可

自適應導航指的是導航占據容器全部寬度,而且菜單項可以像表格的單元格一樣自適應寬度。自適應導航和前面使用“btn-group-justified”制作的自適應按鈕組是一樣的。只不過在制作自適應導航時更換了另一個類名“nav-justified”。當然他需要和“nav-tabs”或者“nav-pills”配合在一起使用。

<ul class="nav nav-tabs nav-justified">
  <li class="active"><a href="##">Home</a></li>
  <li><a href="##">CSS3</a></li>
  <li><a href="##">Sass</a></li>
  <li><a href="##">jQuery</a></li>
  <li><a href="##">Responsive</a></li>
</ul>

10、導航加下拉菜單(二級導航)

 只需要將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>
        <li><a href="##">Sass</a></li>
        <li><a href="##">jQuery</a></li>
        <li><a href="##">Responsive</a></li>
      </ul>
  </li>
 <li><a href="##">關於我們</a></li>
</ul>

11、面包屑式導航

面包屑(Breadcrumb)一般用於導航,主要是起的作用是告訴用戶現在所處頁面的位置(當前位置)。在Bootstrap框架中面包屑也是一個獨立模塊組件:

  • LESS版本:對應源文件breadcrumbs.less
  • Sass版本:對應源文件_breadcrumbs.scss
  • 編譯出來的版本:源碼對應bootstrap.css文件第4112行~第4129行

使用方法:

使用方式就很簡單,為ol加入breadcrumb類

<ol class="breadcrumb">
  <li><a href="#">首頁</a></li>
  <li><a href="#">我的書</a></li>
  <li class="active">《圖解CSS3》</li>
</ol> 

 

12、導航條

導航條(navbar)和上一節介紹的導航(nav),就相差一個字,多了一個“條”字。其實在Bootstrap框架中他們還是明顯的區別。在導航條(navbar)中有一個背景色、而且導航條可以是純鏈接(類似導航),也可以是表單,還有就是表單和導航一起結合等多種形式。在這一節中將一起探討Bootstrap框架中導航條的使用。

導航條和導航一樣,在Bootstrap框架中是一個獨立組件,所以你也可以根據自己的需求使用不同的版本:

  • LESS版本:對應的源文件navbar.less
  • Sass版本:對應的源文件_navbar.scss
  • 編譯后的版本:查看bootstrap.css文件第3642行~第4111行(注意這個所說的Bootstrap版本是3.1.1,其它版本位置是不一致的),這五百多行代碼已從原文中節取出來,放在右側代碼頂部“bootstrap.css”文件中
<div class="navbar navbar-default" role="navigation">
   <div class="navbar-header">
       <a href="##" class="navbar-brand">慕課網</a>
   </div>
     <ul class="nav navbar-nav">
         <li class="active"><a href="##">網站首頁</a></li>
      <li class="dropdown">
        <a href="##" data-toggle="dropdown" class="dropdown-toggle">系列教程<span class="caret"></span></a>
        <ul class="dropdown-menu">
            <li><a href="##">CSS3</a></li>
            <li><a href="##">JavaScript</a></li>
            <li class="disabled"><a href="##">PHP</a></li>
        </ul>
     </li>
      <li><a href="##">名師介紹</a></li>
      <li><a href="##">成功案例</a></li>
      <li><a href="##">關於我們</a></li>
     </ul>
  <form action="##" class="navbar-form navbar-left" rol="search">
       <div class="form-group">
           <input type="text" class="form-control" placeholder="請輸入關鍵詞" />
       </div>
     <button type="submit" class="btn btn-default">搜索</button>
   </form>
</div>

13、導航條中的按鈕、文本和鏈接,固定導航條

Bootstrap框架的導航條中除了使用navbar-brand中的a元素和navbar-nav的ul和navbar-form之外,還可以使用其他元素。框架提供了三種其他樣式:

1、導航條中的按鈕navbar-btn

2、導航條中的文本navbar-text

3、導航條中的普通鏈接navbar-link

但這三種樣式在框架中使用時受到一定的限制,需要和navbar-brand、navbar-nav配合起來使用。而且對數量也有一定的限制,一般情況在使用一到兩個不會有問題,超過兩個就會有問題

<div class="navbar navbar-default" role="navigation">
   <div class="navbar-header">
       <a href="##" class="navbar-brand">慕課網</a>
   </div>
     <div class="nav navbar-nav">
         <a href="##" class="navbar-text">Navbar Text</a>
         <a href="##" class="navbar-text">Navbar Text</a>
         <a href="##" class="navbar-text">Navbar Text</a>
     </div>
</div>

兩種固定導航條的方式:

   ☑  .navbar-fixed-top:導航條固定在瀏覽器窗口頂部

   ☑  .navbar-fixed-bottom:導航條固定在瀏覽器窗口底部

14、響應式導航條

實現的導航條僅能適配於大屏幕的瀏覽器,但當瀏覽器屏幕變小的時候,就不適合了。

使用方法:

1、保證在窄屏時需要折疊的內容必須包裹在帶一個div內,並且為這個div加入collapse、navbar-collapse兩個類名。最后為這個div添加一個class類名或者id名。

2、保證在窄屏時要顯示的圖標樣式(固定寫法)

反色導航條其實是Bootstrap框架為大家提供的第二種風格的導航條,與默認的導航條相比,使用方法並無區別,只是將navbar-deafult類名換成navbar-inverse

<div class="navbar navbar-default" role="navigation">
  <div class="navbar-header">
      <!-- .navbar-toggle樣式用於toggle收縮的內容,即nav-collapse collapse樣式所在元素 -->
       <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".navbar-responsive-collapse">
         <span class="sr-only">Toggle Navigation</span>
         <span class="icon-bar"></span>
         <span class="icon-bar"></span>
         <span class="icon-bar"></span>
       </button>
       <!-- 確保無論是寬屏還是窄屏,navbar-brand都顯示 -->
       <a href="##" class="navbar-brand">慕課網</a>
  </div>
  <!-- 屏幕寬度小於768px時,div.navbar-responsive-collapse容器里的內容都會隱藏,顯示icon-bar圖標,當點擊icon-bar圖標時,再展開。屏幕大於768px時,默認顯示。 -->
  <div class="collapse navbar-collapse navbar-responsive-collapse">
        <ul class="nav navbar-nav">
              <li class="active"><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>
</div>

15、分頁導航(帶頁碼的分頁導航)

在Bootstrap框架中提供了兩種分頁導航:

   ☑   帶頁碼的分頁導航

   ☑   帶翻頁的分頁導航

帶頁碼的分頁導航

帶頁碼的分頁導航,可能是最常見的一種分頁導航,特別是在列表頁內容超多的時候,會給用戶提供分頁的導航方式。在Bootstrap框架為開發者提供不同的版本:

   ☑   LESS版本:對應的源文件pagination.less

   ☑   Sass版本:對應的源文件_pagination.scss

   ☑   編譯后版本:對應bootstrap.css文件第4130行~第4222行

使用方法:

平時很多同學喜歡用div>adiv>span結構來制作帶頁碼的分頁導航。不過,在Bootstrap框架中使用的是ul>li>a這樣的結構,在ul標簽上加入pagination方法

要禁用當前狀態和禁用狀態不能點擊,我們還要依靠js來實現,或者將這兩狀態下的a標簽換成span標簽。

大小設置:

在Bootstrap框架中,也可以通過幾個不同的情況來設置其大小。類似於按鈕一樣:

1、通過“pagination-lg”讓分頁導航變大;

2、通過“pagination-sm”讓分頁導航變小、

<ul class="pagination pagination-lg">
  <li><a href="#">&laquo;第一頁</a></li>
  <li><a href="#">11</a></li>
  <li><a href="#">12</a></li>
  <li class="active"><a href="#">13</a></li>
  <li><a href="#">14</a></li>
  <li><a href="#">15</a></li>
  <li class="disabled"><a href="#">最后一頁&raquo;</a></li>
</ul> 
  
<ul class="pagination pagination">
  <li><a href="#">&laquo;第一頁</a></li>
  <li><a href="#">11</a></li>
  <li><a href="#">12</a></li>
  <li class="active"><a href="#">13</a></li>
  <li><a href="#">14</a></li>
  <li><a href="#">15</a></li>
  <li class="disabled"><a href="#">最后一頁&raquo;</a></li>
</ul>   
<ul class="pagination pagination-sm">
  <li><a href="#">&laquo;第一頁</a></li>
  <li><a href="#">11</a></li>
  <li><a href="#">12</a></li>
  <li class="active"><a href="#">13</a></li>
  <li><a href="#">14</a></li>
  <li><a href="#">15</a></li>
  <li class="disabled"><a href="#">最后一頁&raquo;</a></li>
</ul>   
<ul class="pager">
  <li><a href="#">&laquo;上一頁</a></li>
  <li><a href="#">下一頁&raquo;</a></li>
</ul> 

16、標簽、徽章

徽章效果和前面介紹的標簽效果是極其的相似。也是用來做一些提示信息使用。常出現的是一些系統發出的信息,比如你登錄你的twitter后,如果你信息沒有看,系統會告訴你有多少信息未讀

<a href="#">Inbox <span class="badge">42</span></a> 
<!--navbar-default導航條勛章-->
<div class="navbar navbar-default" role="navigation">
   <div class="navbar-header">
       <a href="##" class="navbar-brand">慕課網</a>
   </div>
    <ul class="nav navbar-nav">
         <li class="active"><a href="##">網站首頁</a></li>
        <li><a href="##">系列教程</a></li>
        <li><a href="##">名師介紹</a></li>
        <li><a href="##">成功案例<span class="badge">23</span></a></li>
        <li><a href="##">關於我們</a></li>
    </ul>
</div>
<!--nav-pills導航條勛章-->
<ul class="nav nav-pills">
  <li class="active"><a href="#">Home <span class="badge">42</span></a></li>
  <li><a href="#">Profile</a></li>
  <li><a href="#">Messages <span class="badge">3</span></a></li>
</ul>
<br /> 
<ul class="nav nav-pills nav-stacked" style="max-width: 260px;">
      <li class="active">
        <a href="#">
          <span class="badge pull-right">42</span>
          Home
        </a>
      </li>
      <li><a href="#">Profile</a></li>
      <li>
        <a href="#">
          <span class="badge pull-right">3</span>
          Messages
        </a>
      </li>
</ul>
<br />
<!--按鈕勛章-->
<button class="btn btn-primary" type="button">
      Messages <span class="badge">4</span>
</button> 

<h3>Example heading <span class="label label-default">New</span></h3>  
<!--代碼-->
<span class="label label-default">默認標簽</span>
<span class="label label-primary">主要標簽</span>
<span class="label label-success">成功標簽</span>
<span class="label label-info">信息標簽</span>
<span class="label label-warning">警告標簽</span>
<span class="label label-danger">錯誤標簽</span>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM