Bootstrap-菜單,導航,按鈕

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

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

  ☑  LESS版本:對應的源碼文件爲 dropdowns.lessjquery

  ☑  Sass版本:對應的源碼文件爲 _dropdowns.scssbootstrap

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

在使用Bootstrap框架的下拉菜單時,必須調用Bootstrap框架提供的bootstrap.js文件。固然,若是你使用的是未編譯版本,在js文件夾下你能找到一個名爲「dropdown.js」的文件。你也能夠調用這個js文件。不過在咱們的教程中,咱們統一調用壓縮好的「bootstrap.min.js」文件框架

由於Bootstrap的組件交互效果都是依賴於jQuery庫寫的插件,因此在使用bootstrap.min.js以前必定要先加載jquery.min.js纔會生效果less

使用方法:編輯器

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

一、使用一個名爲「dropdown」的容器包裹了整個下拉菜單元素,示例中爲:工具

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

二、使用了一個<button>按鈕作爲父菜單,而且定義類名「dropdown-toggle」和自定義「data-toggle」屬性,且值必須和最外容器類名一致,此示例爲:

data-toggle="dropdown"

三、下拉菜單項使用一個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> 

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

在Bootstrap框架中的下拉菜單還提供了下拉分隔線,假設下拉菜單有兩個組,那麼組與組之間能夠經過添加一個空的<li>,而且給這個<li>添加類名「divider」來實現添加下拉分隔線的功能

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

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

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>

四、按鈕(按鈕組)

<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>

 

五、按鈕(按鈕工具欄)

將按鈕組分組排列在一塊兒,好比說複製、剪切和粘貼一組;左對齊、中間對齊、右對齊和兩端對齊一組

須要將按鈕組「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>

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

咱們常把下拉菜單和普通的按鈕組排列在一塊兒,實現相似於導航菜單的效果

 

<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在部分瀏覽器下支持並不友好

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

按鈕的向下三角形,咱們是經過在<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的值

八、導航(基礎樣式)

在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>

九、膠囊形(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>

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

 只須要將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>

十一、麪包屑式導航

麪包屑(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> 

 

十二、導航條

導航條(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>

1三、導航條中的按鈕、文本和連接,固定導航條

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

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

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

三、導航條中的普通連接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:導航條固定在瀏覽器窗口底部

1四、響應式導航條

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

使用方法:

一、保證在窄屏時須要摺疊的內容必須包裹在帶一個div內,而且爲這個div加入collapse、navbar-collapse兩個類名。最後爲這個div添加一個class類名或者id名。

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

反色導航條實際上是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>

1五、分頁導航(帶頁碼的分頁導航)

在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框架中,也能夠經過幾個不一樣的狀況來設置其大小。相似於按鈕同樣:

一、經過「pagination-lg」讓分頁導航變大;

二、經過「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> 

1六、標籤、徽章

徽章效果和前面介紹的標籤效果是極其的類似。也是用來作一些提示信息使用。常出現的是一些系統發出的信息,好比你登陸你的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>
相關文章
相關標籤/搜索