在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>
只須要把類名「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框架中麪包屑也是一個獨立模塊組件:
使用方法:
使用方式就很簡單,爲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框架中是一個獨立組件,因此你也能夠根據本身的需求使用不一樣的版本:
<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>
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:導航條固定在瀏覽器窗口底部
實現的導航條僅能適配於大屏幕的瀏覽器,但當瀏覽器屏幕變小的時候,就不適合了。
使用方法:
一、保證在窄屏時須要摺疊的內容必須包裹在帶一個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>
在Bootstrap框架中提供了兩種分頁導航:
☑ 帶頁碼的分頁導航
☑ 帶翻頁的分頁導航
帶頁碼的分頁導航
帶頁碼的分頁導航,多是最多見的一種分頁導航,特別是在列表頁內容超多的時候,會給用戶提供分頁的導航方式。在Bootstrap框架爲開發者提供不一樣的版本:
☑ LESS版本:對應的源文件pagination.less
☑ Sass版本:對應的源文件_pagination.scss
☑ 編譯後版本:對應bootstrap.css文件第4130行~第4222行
使用方法:
平時不少同窗喜歡用div>a
和div>span
結構來製做帶頁碼的分頁導航。不過,在Bootstrap框架中使用的是ul>li>a
這樣的結構,在ul標籤上加入pagination方法
要禁用當前狀態和禁用狀態不能點擊,咱們還要依靠js來實現,或者將這兩狀態下的a標籤換成span標籤。
大小設置:
在Bootstrap框架中,也能夠經過幾個不一樣的狀況來設置其大小。相似於按鈕同樣:
一、經過「pagination-lg」讓分頁導航變大;
二、經過「pagination-sm」讓分頁導航變小、
<ul class="pagination pagination-lg"> <li><a href="#">«第一頁</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="#">最後一頁»</a></li> </ul> <ul class="pagination pagination"> <li><a href="#">«第一頁</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="#">最後一頁»</a></li> </ul> <ul class="pagination pagination-sm"> <li><a href="#">«第一頁</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="#">最後一頁»</a></li> </ul>
<ul class="pager"> <li><a href="#">«上一頁</a></li> <li><a href="#">下一頁»</a></li> </ul>
徽章效果和前面介紹的標籤效果是極其的類似。也是用來作一些提示信息使用。常出現的是一些系統發出的信息,好比你登陸你的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>