Bootstrap源碼解讀導(dǎo)航(6)
源碼解讀Bootstrap導(dǎo)航
基礎(chǔ)樣式
制作導(dǎo)航條主要通過(guò)“.nav”樣式。默認(rèn)的“.nav”樣式不提供默認(rèn)的導(dǎo)航樣式,必須附加另外一個(gè)樣式才會(huì)有效,比如“nav-tabs”、“nav-pills”之類(lèi)。例如:
<ul class="nav"> <li><a href="##">1</a></li> <li><a href="##">2</a></li> <li><a href="##">3</a></li> </ul>
實(shí)現(xiàn)源碼:
.nav { padding-left: 0; margin-bottom: 0; list-style: none; } .nav> li { position: relative; display: block; } .nav> li > a { position: relative; display: block; padding: 10px 15px; } .nav> li >a:hover, .nav> li >a:focus { text-decoration: none; background-color: #eee; } .nav>li.disabled> a { color: #999; } .nav>li.disabled>a:hover, .nav>li.disabled>a:focus { color: #999; text-decoration: none; cursor: not-allowed; background-color: transparent; } .nav .open > a, .nav .open >a:hover, .nav .open >a:focus { background-color: #eee; border-color: #428bca; } .nav .nav-divider { height: 1px; margin: 9px 0; overflow: hidden; background-color: #e5e5e5; } .nav> li > a >img { max-width: none; }
標(biāo)簽形tab導(dǎo)航
原導(dǎo)航“nav”上追加“nav-tabs”類(lèi)名即可,例如:<ul class="nav nav-tabs">...</ul>。
實(shí)現(xiàn)原理是將菜單項(xiàng)(li)按塊顯示,并且讓他們?cè)谕凰缴吓帕?,然后定義非高亮菜單的樣式和鼠標(biāo)懸浮效果。實(shí)現(xiàn)源碼如下:
.nav-tabs { border-bottom: 1px solid #ddd; } .nav-tabs > li { float: left; margin-bottom: -1px; } .nav-tabs > li > a { margin-right: 2px; line-height: 1.42857143; border: 1px solid transparent; border-radius: 4px 4px 0 0; } .nav-tabs > li >a:hover { border-color: #eee #eee #ddd; }
要讓哪個(gè)項(xiàng)是選中項(xiàng),只需要在其標(biāo)簽上添加類(lèi)名“class=”active”即可。
實(shí)現(xiàn)源碼如下:
.nav-tabs >li.active> a, .nav-tabs >li.active>a:hover, .nav-tabs >li.active>a:focus { color: #555; cursor: default; background-color: #fff; border: 1px solid #ddd; border-bottom-color: transparent; }
要讓哪個(gè)項(xiàng)禁用,只需要在標(biāo)簽項(xiàng)上添加“class=”disabled”即可。實(shí)現(xiàn)源碼如下:
.nav>li.disabled> a { color: #999; } .nav>li.disabled>a:hover, .nav>li.disabled>a:focus { color: #999; text-decoration: none; cursor: not-allowed; background-color: transparent; }
膠囊形pills導(dǎo)航
原導(dǎo)航“nav”上追加“nav-pills”類(lèi)名即可,例如:<ul class="nav nav-pills">...</ul>。
實(shí)現(xiàn)源碼如下:
.nav-pills > li { float: left; } .nav-pills > li > a { border-radius: 4px; } .nav-pills > li + li { margin-left: 2px; } .nav-pills >li.active> a, .nav-pills >li.active>a:hover, .nav-pills >li.active>a:focus { color: #fff; background-color: #428bca; }
垂直導(dǎo)航
制作垂直堆疊導(dǎo)航只需要在“nav-pills”的基礎(chǔ)上添加一個(gè)“nav-stacked”類(lèi)名即可。例如:
<ul class="nav nav-pills nav-stacked">...</ul>
垂直導(dǎo)航與膠囊形導(dǎo)航相比,主要是讓導(dǎo)航項(xiàng)不浮動(dòng),讓其垂直排列,然后給相鄰導(dǎo)航項(xiàng)留有一定的間距。
實(shí)現(xiàn)源碼如下:
.nav-stacked > li { float: none; } .nav-stacked > li + li { margin-top: 2px; margin-left: 0; }
要在導(dǎo)航項(xiàng)之間加分隔線(xiàn),在導(dǎo)航項(xiàng)之間加<li class=”nav-divider”></li>即可。
實(shí)現(xiàn)源碼如下:
.nav .nav-divider { height: 1px; margin: 9px 0; overflow: hidden; background-color: #e5e5e5; }
自適應(yīng)導(dǎo)航
在“nav”上追加一個(gè)“nav-justified”類(lèi)名即可。例如:<ul class="nav nav-justified">
實(shí)現(xiàn)原理是,列表<ul>上設(shè)置寬度為“100%”,然后每個(gè)菜單項(xiàng)<li>設(shè)置了“display:table-cell”,讓列表項(xiàng)以模擬表格單元格的形式顯示。實(shí)現(xiàn)源碼如下:
.nav-justified { width: 100%; } .nav-justified > li { float: none; } .nav-justified > li > a { margin-bottom: 5px; text-align: center; } .nav-justified > .dropdown .dropdown-menu { top: auto; left: auto; } @media (min-width: 768px) { .nav-justified > li { display: table-cell; width: 1%; } .nav-justified > li > a { margin-bottom: 0; } }
“nav-tabs”和“nav-justified”配合在一起使用就是自適應(yīng)選項(xiàng)卡導(dǎo)航,實(shí)現(xiàn)源碼如下:
.nav-tabs.nav-justified { width: 100%; border-bottom: 0; } .nav-tabs.nav-justified > li { float: none; } .nav-tabs.nav-justified > li > a { margin-bottom: 5px; text-align: center; } .nav-tabs.nav-justified > .dropdown .dropdown-menu { top: auto; left: auto; } @media (min-width: 768px) { .nav-tabs.nav-justified > li { display: table-cell; width: 1%; } .nav-tabs.nav-justified > li > a { margin-bottom: 0; } } .nav-tabs.nav-justified > li > a { margin-right: 0; border-radius: 4px; } .nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active >a:hover, .nav-tabs.nav-justified > .active >a:focus { border: 1px solid #ddd; } @media (min-width: 768px) { .nav-tabs.nav-justified > li > a { border-bottom: 1px solid #ddd; border-radius: 4px 4px 0 0; } .nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active >a:hover, .nav-tabs.nav-justified > .active >a:focus { border-bottom-color: #fff; } }
“nav-pills”和“nav-justified”配合在一起使用就是自適應(yīng)膠囊型導(dǎo)航,原理同上。
導(dǎo)航加下拉菜單
導(dǎo)航加下拉菜單也就是二級(jí)導(dǎo)航,只需要將li當(dāng)作父容器,使用類(lèi)名“dropdown”,同時(shí)在li中嵌套另一個(gè)列表ul下拉菜單即可。例如:
<ul class="nav nav-pills"> <li><a href="##">首頁(yè)</a></li> <li class="dropdown"> <a href="##" class="dropdown-toggle" data-toggle="dropdown">數(shù)字<span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="##">1</a></li> <li><a href="##">2</a></li> </ul> </li> <li><a href="##">關(guān)于我們</a></li> </ul>
面包屑式Breadcrumb導(dǎo)航
面包屑不需要使用“nav”,一般作用是告訴用戶(hù)現(xiàn)在所處頁(yè)面的位置。為ol加入“breadcrumb”類(lèi)名即可。例如:
<ol class="breadcrumb"> <li><a href="#">111</a></li> <li><a href="#">222</a></li> <li class="active">333</li> </ol>
實(shí)現(xiàn)源碼如下:
.breadcrumb { padding: 8px 15px; margin-bottom: 20px; list-style: none; background-color: #f5f5f5; border-radius: 4px; } .breadcrumb > li { display: inline-block; } .breadcrumb > li + li:before { padding: 0 5px; color: #ccc; content: "/\00a0"; } .breadcrumb > .active { color: #777; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Bootstrap每天必學(xué)之導(dǎo)航條
- Bootstrap實(shí)現(xiàn)響應(yīng)式導(dǎo)航欄效果
- Bootstrap實(shí)現(xiàn)默認(rèn)導(dǎo)航欄效果
- Bootstrap每天必學(xué)之導(dǎo)航
- 第一次接觸神奇的Bootstrap菜單和導(dǎo)航
- Bootstrap導(dǎo)航欄各元素操作方法(表單、按鈕、文本)
- Bootstrap每天必學(xué)之附加導(dǎo)航(Affix)插件
- 第一次接觸神奇的Bootstrap導(dǎo)航條
- Bootstrap每天必學(xué)之響應(yīng)式導(dǎo)航、輪播圖
- Bootstrap多級(jí)導(dǎo)航欄(級(jí)聯(lián)導(dǎo)航)的實(shí)現(xiàn)代碼
相關(guān)文章
JS實(shí)現(xiàn)自定義狀態(tài)欄動(dòng)畫(huà)文字效果示例
這篇文章主要介紹了JS實(shí)現(xiàn)自定義狀態(tài)欄動(dòng)畫(huà)文字效果,涉及javascript結(jié)合時(shí)間函數(shù)動(dòng)態(tài)設(shè)置IE狀態(tài)欄文字顯示效果相關(guān)操作技巧,需要的朋友可以參考下2017-10-10仿淘寶首頁(yè)分類(lèi)列表效果實(shí)現(xiàn)代碼
模板淘寶首頁(yè)的分類(lèi)列表效果,17173的游戲分類(lèi)效果也不錯(cuò)。2009-04-04使用微信小程序開(kāi)發(fā)前端【快速入門(mén)】
本文從代碼角度和宏觀角度簡(jiǎn)單闡述了微信小程序在前端領(lǐng)域的一些內(nèi)容和影響,希望能夠幫助那些不了解微信小程序的開(kāi)發(fā)者很快入門(mén)并認(rèn)識(shí)這一新的技術(shù)領(lǐng)域。2016-12-12解決layui使用layui-icon出現(xiàn)默認(rèn)圖標(biāo)的問(wèn)題
今天小編就為大家分享一篇解決layui使用layui-icon出現(xiàn)默認(rèn)圖標(biāo)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09JS數(shù)組push、unshift、pop、shift方法的實(shí)現(xiàn)與使用方法示例
這篇文章主要介紹了JS數(shù)組push、unshift、pop、shift方法,結(jié)合實(shí)例形式分析了JS數(shù)組push、unshift、pop、shift方法針對(duì)數(shù)組添加、刪除等相關(guān)操作技巧,需要的朋友可以參考下2020-04-04JavaScript數(shù)據(jù)結(jié)構(gòu)之單鏈表和循環(huán)鏈表
這篇文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)之單鏈表、循環(huán)鏈表,詳細(xì)的介紹了JavaScript如何實(shí)現(xiàn)單鏈表、循環(huán)鏈表,有興趣的可以了解一下2017-11-11