<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>響應式導航條</title><link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/CSS/bootstrap.min.css"><style type="text/css"> body{padding:50px 0 0 0;}</style></head><body><!--代碼--><script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script><script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> </body></html>導航條基礎
導航條(navbar)和上一節介紹的導航(nav),就相差一個字,多了一個“條”字。其實在Bootstrap框架中他們還是明顯的區別。在導航條(navbar)中有一個背景色、而且導航條可以是純鏈接(類似導航),也可以是表單,還有就是表單和導航一起結合等多種形式。在這一節中將一起探討Bootstrap框架中導航條的使用。
說明:導航條包含導航,因為導航條中可以有表單或者表單和導航的結合形式。
導航條和導航一樣,在Bootstrap框架中是一個獨立組件,所以你也可以根據自己的需求使用不同的版本:
LESS版本:對應的源文件navbar.lessSass版本:對應的源文件_navbar.scss編譯后的版本:查看bootstrap.css文件第3642行~第4111行(注意這個所說的Bootstrap版本是3.1.1,其它版本位置是不一致的),這五百多行代碼已從原文中節取出來,放在右側代碼頂部“bootstrap.css”文件中,小伙伴們可以查看。基礎導航條
在Bootstrap框中,導航條和導航從外觀上差別不是太多,但在實際使用中導航條要比導航復雜得多。我們先來看導航條中最基礎的一個——基礎導航條。
代碼示例:
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>基本導航條</title><link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"></head><body><!--代碼--><div class="navbar navbar-default" role="navigation"> <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><!--代碼--><script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script><script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> </body></html>使用方法:
在制作一個基礎導航條時,主要分以下幾步:
第一步:首先在制作導航的列表(<ul class=”nav”>)基礎上添加類名“navbar-nav”
第二步:在列表外部添加一個容器(div),并且使用類名“navbar”和“navbar-default”
示例查看右側代碼編輯(10-19行)。
“.navbar”樣式的主要功能就是設置左右padding和圓角等效果,但他和顏色相關的樣式沒有進行任何的設置。其主要源碼如下:
/*源碼查看bootstrap.css文件第3642行~第3647行*/
.navbar { position: relative; min-height: 50px; margin-bottom: 20px; border: 1px solid transparent;}原理分析:
而導航條的顏色都是通過“.navbar-default”來進行控制:
/*源碼查看bootstrap.css文件第3940行~第3943行*/
.navbar-default { background-color: #f8f8f8; border-color: #e7e7e7;}navbar-nav樣式是在導航.nav的基礎上重新調整了菜單項的浮動與內外邊距。同時也不包括顏色等樣式設置,源碼請查看bootstrap.css文件第3785行~第3830行,我們把代碼節選出來放入右側bootstrap.css中。
而顏色和其他樣式是通過配合父容器“navbar-default”來一起實現:
/*源碼請查看bootstrap.css文件第3955行~第3974行*/
.navbar-default .navbar-nav> li > a { color: #777;}.navbar-default .navbar-nav> li >a:hover,.navbar-default .navbar-nav> li >a:focus { color: #333; background-color: transparent;}.navbar-default .navbar-nav> .active > a,.navbar-default .navbar-nav> .active >a:hover,.navbar-default .navbar-nav> .active >a:focus { color: #555; background-color: #e7e7e7;}.navbar-default .navbar-nav> .disabled > a,.navbar-default .navbar-nav> .disabled >a:hover,.navbar-default .navbar-nav> .disabled >a:focus { color: #ccc; background-color: transparent;}為導航條添加標題、二級菜單及狀態
加入導航條標題
在Web頁面制作中,常常在菜單前面都會有一個標題(文字字號比其它文字稍大一些),其實在Bootstrap框架也為大家做了這方面考慮,其通過“navbar-header”和“navbar-brand”來實現,示例查看代碼編輯器(11-22)。
原理分析:
此功能主要起一個提醒功能,當然改良一下可以當作是logo(此處不做過多闡述)。其樣式主要是加大了字體設置,并且設置了最大寬度:
/*源碼查看bootstrap.css文件第3739行~第3755行*/
.navbar-brand {float: left;height: 50px;padding: 15px 15px;font-size: 18px;line-height: 20px;}.navbar-brand:hover,.navbar-brand:focus {text-decoration: none;}@media (min-width: 768px) {.navbar> .container .navbar-brand,.navbar> .container-fluid .navbar-brand {margin-left: -15px;}}同樣在默認導航條(navbar-default)下,對navbar-brand也做了顏色處理:
/*源碼請查看bootstrap.css文件第3947行~3951行*/
.navbar-default .navbar-brand {color: #777;}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus {color: #5e5e5e;background-color: transparent;}導航條狀態、二級菜單
同樣的,在基礎導航條中對菜單提供了當前狀態,禁用狀態,懸浮狀態等效果,而且也可以帶有二級菜單的導航條,案例代碼見右側代碼編輯器(24-42行)。
效果圖如下:
帶表單的導航條
有的導航條中會帶有搜索表單,比如新浪微博的導航條:
在Bootstrap框架中提供了一個“navbar-form”,使用方法很簡單,在navbar容器中放置一個帶有navbar-form類名的表單,示例代碼編輯器(29-34行)。
實現導航條表單的樣式代碼源碼請查看bootstrap.css文件第3839行~第3904行,我們也對60多行樣式代碼節選了出來放到右側bootstrap.css文件中,有興趣的同學請查看。
在上面的示例中,大家看到了“navbar-left”讓表單左浮動,更好實現對齊。在Bootstrap框架中,還提供了“navbar-right”樣式,讓元素在導航條靠右對齊。
/*源碼請查看bootstrap.css文件第3831行~第3838行*/
@media (min-width: 768px) { .navbar-left { float: left !important;}.navbar-right { float: right !important; }}注意:這里有一個條件,只有當瀏覽器視窗寬度大于768px生效。
實現帶搜索框的導航條:
<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-right" 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之外,還可以使用其他元素??蚣芴峁┝巳N其他樣式:
1、導航條中的按鈕navbar-btn
2、導航條中的文本navbar-text
3、導航條中的普通鏈接navbar-link
但這三種樣式在框架中使用時受到一定的限制,需要和navbar-brand、navbar-nav配合起來使用。而且對數量也有一定的限制,一般情況在使用一到兩個不會有問題,超過兩個就會有問題。
先來看看這三種樣式對應的源碼:
/*源碼請查看bootstrap.css文件第3914行~第3939行*/
.navbar-btn {margin-top: 8px;margin-bottom: 8px;}.navbar-btn.btn-sm {margin-top: 10px;margin-bottom: 10px;}.navbar-btn.btn-xs {margin-top: 14px;margin-bottom: 14px;}.navbar-text {margin-top: 15px;margin-bottom: 15px;}@media (min-width: 768px) {.navbar-text {float: left;margin-right: 15px;margin-left: 15px; }.navbar-text.navbar-right:last-child {margin-right: 0; }}/*bootstrap.css文件第3952行~第3954行*/
.navbar-default .navbar-text { color: #777;}/*bootstrap.css文件第4035行~第4037行*/
.navbar-inverse .navbar-text {color: #999;}/*boostrap.css文件第4017行~第4022行*/
.navbar-default .navbar-link {color: #777;}.navbar-default .navbar-link:hover {color: #333;}/*bootstrap.css文件第4106行~第4111行*/
.navbar-inverse .navbar-link {color: #999;}.navbar-inverse .navbar-link:hover {color: #fff;}通過瀏覽器調試工具,可以看到a標簽有margin-top和margin-bottom的值為15px,欲將其對齊,我們將上面的結構做一定的調整:
<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>換換標簽就OK了。查看右側代碼結果窗口。
有問題的代碼:a標簽失效
<div class="navbar navbar-default" role="navigation"> <div class="navbar-header"> <a href="##" class="navbar-brand">慕課網</a> </div> <ul class="nav navbar-nav"> <li><a href="##" class="navbar-text">Navbar Text</a></li> <li><a href="##" class="navbar-text">Navbar Text</a></li> <li><a href="##" class="navbar-text">Navbar Text</a></li> </ul></div>正確的代碼:a標簽正常<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>固定導航條
很多情況之一,設計師希望導航條固定在瀏覽器頂部或底部,這種固定式導航條的應用在移動端開發中更為常見。Bootstrap框架提供了兩種固定導航條的方式:
? .navbar-fixed-top:導航條固定在瀏覽器窗口頂部
? .navbar-fixed-bottom:導航條固定在瀏覽器窗口底部
使用方法很簡單,只需要在制作導航條最外部容器navbar上追加對應的類名即可:
<div class="navbar navbar-default navbar-fixed-top" role="navigation"> …</div><div class="content">我是內容</div><div class="navbar navbar-default navbar-fixed-bottom" role="navigation"> …</div>實現原理:
實現原理很簡單,就是在navbar-fixed-top和navbar-fixed-bottom使用了position:fixed屬性,并且設置navbar-fixed-top的top值為0,而navbar-fixed-bottom的bottom值為0。具體的源碼如下:
/*源碼請查看bootstrap.css文件第3717 行~第3738行*/
.navbar-fixed-top,.navbar-fixed-bottom { position: fixed; right: 0; left: 0; z-index: 1030;}@media (min-width: 768px) {.navbar-fixed-top,.navbar-fixed-bottom { border-radius: 0; }}.navbar-fixed-top { top: 0; border-width: 0 0 1px;}.navbar-fixed-bottom { bottom: 0; margin-bottom: 0; border-width: 1px 0 0;}存在bug及解決方法:
從運行效果中大家不難發現,頁面主內容頂部和底部都被固定導航條給遮住了。為了避免固定導航條遮蓋內容,我們需要在body上做一些處理:
body { padding-top: 70px;/*有頂部固定導航條時設置*/ padding-bottom: 70px;/*有底部固定導航條時設置*/}因為固定導航條默認高度是50px,我們一般設置padding-top和padding-bottom的值為70px,當然有的時候還是需要具體情況具體分析。
第二種解決這個bug方法:
其實除了這種解決方案之外,我們還有其他的解決方法,把固定導航條都放在頁面內容前面:
<div class="navbar navbar-default navbar-fixed-top" role="navigation"> …</div><div class="navbar navbar-default navbar-fixed-bottom" role="navigation"> …</div><div class="content">我是內容</div>在文件中添加下列樣式代碼:
.navbar-fixed-top ~ .content { padding-top: 70px;}.navbar-fixed-bottom ~ .content { padding-bottom: 70px;}當然,這種方法有的時候也是需要具體情況具體分析的。
響應式導航條
如今瀏覽Web頁面的終端不在是一塵不變了,前面示例實現的導航條僅能適配于大屏幕的瀏覽器,但當瀏覽器屏幕變小的時候,就不適合了。因此響應式設計也就隨之而來。那么在一個響應式的Web頁面中,對于響應式的導航條也就非常的重要。例如Bootstrap框架官網的導航條:
(寬屏時效果)
(中屏時效果)
(窄屏時效果)
那么在這一節中,主要和大家探討如何使用Bootstrap框架實現響應式導航條效果。
先來看HTML結構見右側代碼區。
使用方法:
1、保證在窄屏時需要折疊的內容必須包裹在帶一個div內,并且為這個div加入collapse、navbar-collapse兩個類名。最后為這個div添加一個class類名或者id名。
2、保證在窄屏時要顯示的圖標樣式(固定寫法):
<button class="navbar-toggle" type="button" data-toggle="collapse"> <span class="sr-only">Toggle Navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span></button>3、并為button添加data-target=".類名/#id名",究競是類名還是id名呢?由需要折疊的div來決定。如:
需要折疊的div代碼段:
<div class="collapse navbar-collapse" id="example"> <ul class="nav navbar-nav"> … </ul></div>窄屏時顯示的圖標代碼段:
<button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#example"> ...</button>也可以這么寫,需要折疊的div代碼段:
<div class="collapse navbar-collapse example" > <ul class="nav navbar-nav"> … </ul></div>窄屏時要顯示的圖標:
<button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".example"> ...</button>核心代碼示例:<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框架為大家提供的第二種風格的導航條,與默認的導航條相比,使用方法并無區別,只是將navbar-deafult類名換成navbar-inverse。其變化只是導航條的背景色和文本做了修改。如下:
<div class="navbar navbar-inverse" role="navigation"><div class="nav bar-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></ul></div>運行效果如下:
對應的源碼,請查看bootstrap.css文件第4023行~第4111行(注意這個所說的Bootstrap版本是3.1.1,其它版本位置是不一致的),這80多行代碼已從原文中節取出來,存放在右側代碼頂部“bootstrap.css”文件中,小伙伴們可以查看。
實現“固定網頁頂部的反色導航條”,效果圖如下:
代碼如下:
<div class="navbar navbar-inverse navbar-fixed-bottom" 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="">成功案例</a></li> <li><a href="">關于我們</a></li> </ul></div>本章知識點整理如下:
nav navbar-default默認導航條 nav-inverse反色導航條navbar-fixed-top/bottom固定導航條nav navbar-nav 導航條中的導航鏈接navbar-form 導航表單navbar-left左對齊navbar-right右對齊
分頁導航(帶頁碼的分頁導航)
分頁導航幾乎在哪個網站都可見。好的分頁導航能給用戶帶來更好的用戶體驗。在Bootstrap框架中提供了兩種分頁導航:
? 帶頁碼的分頁導航
? 帶翻頁的分頁導航
帶頁碼的分頁導航
帶頁碼的分頁導航,可能是最常見的一種分頁導航,特別是在列表頁內容超多的時候,會給用戶提供分頁的導航方式。在Bootstrap框架為開發者提供不同的版本:
? LESS版本:對應的源文件pagination.less
? Sass版本:對應的源文件_pagination.scss
? 編譯后版本:對應bootstrap.css文件第4130行~第4222行
使用方法:
平時很多同學喜歡用
div>a
和div>span
結構來制作帶頁碼的分頁導航。不過,在Bootstrap框架中使用的是ul>li>a
這樣的結構,在ul標簽上加入pagination方法:<ul class="pagination"> <li><a href="#">«</a></li> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> <li><a href="#">4</a></li> <li><a href="#">5</a></li> <li><a href="#">»</a></li></ul>運行效果:
實現原理:
從效果中可以看出,當前狀態頁碼會高亮顯示,而且不能點擊。而最后一頁是禁用狀態,也不能點擊。實現樣式:
/*bootstrap.css文件第4170行~第4192行*/
.pagination> .active > a,.pagination> .active > span,.pagination> .active >a:hover,.pagination> .active >span:hover,.pagination> .active >a:focus,.pagination> .active >span:focus {z-index: 2;color: #fff;cursor: default;background-color: #428bca;border-color: #428bca;}.pagination> .disabled > span,.pagination> .disabled >span:hover,.pagination> .disabled >span:focus,.pagination> .disabled > a,.pagination> .disabled >a:hover,.pagination> .disabled >a:focus {color: #999;cursor: not-allowed;background-color: #fff;border-color: #ddd;}注意:要禁用當前狀態和禁用狀態不能點擊,我們還要依靠js來實現,或者將這兩狀態下的a標簽換成span標簽。
大小設置:
在Bootstrap框架中,也可以通過幾個不同的情況來設置其大小。類似于按鈕一樣:
1、通過“pagination-lg”讓分頁導航變大;
2、通過“pagination-sm”讓分頁導航變?。?/p>
<ul class="pagination pagination-lg"> …</ul><ul class="pagination"> …</ul><ul class="pagination pagination-sm"> …</ul>運行效果查看最右側結果窗口。
大小設置實現原理:
其實就是通增加相應的padding大小、font-size大小和圓角大小,源碼查看bootstrap.css文件第4193行~第4222行,這30行代碼已從原文中節取出來,放在右側代碼頂部“bootstrap.css”文件中,小伙伴們可以查看。 示例代碼:
<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>分頁導航(翻頁分頁導航)
Bootstrap框架除了提供帶頁碼的分頁導航之外還提供了翻頁導航。這種分頁導航常常在一些簡單的網站上看到,比如說個人博客,雜志網站等。這種分頁導航是看不到具體的頁碼,只會提供一個“上一頁”和“下一頁”的按鈕。
Bootstrap框架將其獨立成一個單獨的部分:
? LESS版本:對應源文件為pager.less
? Sass版本:對應源文件為_pager.scss
? 編譯后版本:對應bootstrap.css文件第4223行~第4260行
使用方法:
在實際使用中,翻頁分頁導航和帶頁碼的分頁導航類似,為ul標簽加入
pager
類:<ul class="pager"> <li><a href="#">«上一頁</a></li> <li><a href="#">下一頁»</a></li></ul>運行效果見右側結果窗口。
實現原理:
對應樣式代碼:
/*bootstrap.css文件第4223行~第4244行*/
.pager {padding-left: 0;margin: 20px 0;text-align: center;list-style: none;}.pager li {display: inline;}.pager li > a,.pager li > span {display: inline-block;padding: 5px 14px;background-color: #fff;border: 1px solid #ddd;border-radius: 15px;}.pager li >a:hover,.pager li >a:focus {text-decoration: none;background-color: #eee;}對齊樣式設置:
默認情況之下,翻頁分頁導航是居中顯示,但有的時候我們需要一個居左,一個居右。Bootstrap框架提供了兩個樣式:
? PRevious:讓“上一步”按鈕居左
? next:讓“下一步”按鈕居右
具體使用的時候,只需要在
li
標簽上添加對應類名即可:<ul class="pager"> <li class="previous"><a href="#">«上一頁</a></li> <li class="next"><a href="#">下一頁»</a></li></ul>運行效果見右側結果窗口。
實現原理:
實現原理很簡單,就是一個進行了左浮動,一個進行了右浮動:
/*bootstrap.css文件第4245行~第4252行*/
.pager .next > a,.pager .next > span {float: right;}.pager .previous > a,.pager .previous > span {float: left;}狀態樣式設置:
和帶頁碼分頁導航一樣,如果在li標簽上添加了disabled類名的時候,分頁按鈕處于禁用狀態,但同樣不能禁止其點擊功能。你可以通過js來處理,或將
a
標簽換成span
標簽。<ul class="pager"> <li class="disabled"><span>«上一頁</span></li> <li><a href="#">下一頁»</a></li></ul>運行效果見右側結果窗口。
狀態樣式實現原理:
/*bootstrap.css文件第4253行~第4260行*/
.pager .disabled > a,.pager .disabled >a:hover,.pager .disabled >a:focus,.pager .disabled > span { color: #999; cursor: not-allowed; background-color: #fff;}代碼示例:<ul class="pager"> <li><a href="#">?上一頁</a></li> <li><a href="#">下一頁?</a></li></ul> <!--左右對齊--><ul class="pager"> <li class="previous"><a href="#">?上一頁</a></li> <li class="next"><a href="#">下一頁?</a></li></ul> <!--禁止狀態--><ul class="pager"> <li class="disabled"><span>?上一頁</span></li> <li><a href="#">下一頁?</a></li></ul>標簽
在一些Web頁面中常常會添加一個標簽用來告訴用戶一些額外的信息,比如說在導航上添加了一個新導航項,可能就會加一個“new”標簽,來告訴用戶。這是新添加的導航項。如下圖所示:
那么在Bootstrap框架中特意將這樣的效果提取出來成為一個標簽組件,并且以“.label”樣式來實現高亮顯示。
既然他是一個獨立的組件,當然在不同的版本下有不同的文件:
? LESS版本:對應的源文件label.less
? Sass版本:對應的源文件_label.scss
? 編譯后版本:bootstrap.css文件第4261行~第4327行
使用原理:
使用方法很簡單,你可以在使用span這樣的行內標簽:
<h3>Example heading <span class="label label-default">New</span></h3>運行效果見右側結果窗口。
實現原理:
/*bootstrap.css文件第4261行~第4272行*/
.label {display: inline;padding: .2em .6em .3em;font-size: 75%;font-weight: bold;line-height: 1;color: #fff;text-align: center;white-space: nowrap;vertical-align: baseline;border-radius: .25em;}如果使用的是a標簽元素來制作的話,為了讓其更美觀,在hover狀態去掉下劃線之類:
/*bootstrap.css文件第4273行~4278行*/
.label[href]:hover,.label[href]:focus {color: #fff;text-decoration: none;cursor: pointer;}有的時候標簽內沒有內容的時候,可以借助CSS3的:empty偽元素將其隱藏:
.label:empty {display: none;}顏色樣式設置:
和按鈕元素button類似,label樣式也提供了多種顏色:
? label-deafult:默認標簽,深灰色
? label-primary:主要標簽,深藍色
? label-success:成功標簽,綠色
? label-info:信息標簽,淺藍色
? label-warning:警告標簽,橙色
? label-danger:錯誤標簽,紅色
主要是通過這幾個類名來修改背景顏色和文本顏色:
<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>運行效果見右側結果窗口。
顏色實現原理:
/*bootstrap.css文件第4286行~第4237行*/
.label-default {background-color: #999;}.label-default[href]:hover,.label-default[href]:focus {background-color: #808080;}.label-primary {background-color: #428bca;}.label-primary[href]:hover,.label-primary[href]:focus {background-color: #3071a9;}.label-success {background-color: #5cb85c;}.label-success[href]:hover,.label-success[href]:focus {background-color: #449d44;}.label-info {background-color: #5bc0de;}.label-info[href]:hover,.label-info[href]:focus {background-color: #31b0d5;}.label-warning {background-color: #f0ad4e;}.label-warning[href]:hover,.label-warning[href]:focus {background-color: #ec971f;}.label-danger {background-color: #d9534f;}.label-danger[href]:hover,.label-danger[href]:focus {background-color: #c9302c;}代碼示例:<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>徽章
從某種意義上來說,徽章效果和前面介紹的標簽效果是極其的相似。也是用來做一些提示信息使用。常出現的是一些系統發出的信息,比如你登錄你的twitter后,如果你信息沒有看,系統會告訴你有多少信息未讀,如下圖所示:
在Bootstrap框架中,把這種效果稱作為徽章效果,使用“badge”樣式來實現。
對應的文件版本:
? LESS版本:源文件badges.less
? Sass版本:源文件_badges.scss
? 編譯后版本:bootstrap.css文件第4328行~第4366行
使用方法:
使用方法,其實也沒什么太多可說的,你可以像標簽一樣,使用span標簽來制作,然后為他加入
badge
類:<a href="#">Inbox <span class="badge">42</span></a>運行效果見右側結果窗口。
實現原理:
主要將其設置為橢圓形,并且加了一個背景色:
/*bootstrap.css文件第4328行~第4341行*/
.badge {display: inline-block;min-width: 10px;padding: 3px 7px;font-size: 12px;font-weight: bold;line-height: 1;color: #fff;text-align: center;white-space: nowrap;vertical-align: baseline;background-color: #999;border-radius: 10px;}同樣也使用:empty偽元素,當沒有內容的時候隱藏:
.badge:empty {display: none;}正如開頭所說,可以將徽章與按鈕或者導航之類配合使用:
<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>運行效果見右側結果窗口。
按鈕和膠囊形導航設置徽章:
另外,徽章在按鈕元素button和膠囊形導航nav-pills也可以有類似的樣式,只不過是顏色不同而以:
<ul class="nav nav-pills"> <li class="active"><a href="#">Home <span class="badge">42</span></a></li> … <li><a href="#">Messages<span class="badge">3</span></a></li></ul><ul class="navnav-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="#"> <span class="badge pull-right">3</span> Messages</a></li></ul><button class="btnbtn-primary" type="button"> Messages <span class="badge">4</span></button>運行效果見右側結果窗口。
樣式代碼請查看bootstrap.css文件第4345行~第4366行,這20多行代碼已從原文中節取出來,放在右側代碼頂部“bootstrap.css”文件中,小伙伴們可以查看。
注意:不過和標簽組件不一樣的是:在徽章組件中沒有提供多種顏色風格的效果,不過你也可以通過badges.less或者_badges.scss快速自定義。此處對不做過多闡述。
核心代碼示例:<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>
新聞熱點
疑難解答