Bootstrap源碼解讀導(dǎo)航(6)
源碼解讀Bootstrap導(dǎo)航
基礎(chǔ)樣式
制作導(dǎo)航條主要通過“.nav”樣式。默認(rèn)的“.nav”樣式不提供默認(rèn)的導(dǎo)航樣式,必須附加另外一個樣式才會有效,比如“nav-tabs”、“nav-pills”之類。例如:
<ul class="nav"> <li><a href="##">1</a></li> <li><a href="##">2</a></li> <li><a href="##">3</a></li> </ul>
實現(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”類名即可,例如:<ul class="nav nav-tabs">...</ul>。
實現(xiàn)原理是將菜單項(li)按塊顯示,并且讓他們在同一水平上排列,然后定義非高亮菜單的樣式和鼠標(biāo)懸浮效果。實現(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; }
要讓哪個項是選中項,只需要在其標(biāo)簽上添加類名“class=”active”即可。
實現(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; }
要讓哪個項禁用,只需要在標(biāo)簽項上添加“class=”disabled”即可。實現(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”類名即可,例如:<ul class="nav nav-pills">...</ul>。
實現(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ǔ)上添加一個“nav-stacked”類名即可。例如:
<ul class="nav nav-pills nav-stacked">...</ul>
垂直導(dǎo)航與膠囊形導(dǎo)航相比,主要是讓導(dǎo)航項不浮動,讓其垂直排列,然后給相鄰導(dǎo)航項留有一定的間距。
實現(xiàn)源碼如下:
.nav-stacked > li { float: none; } .nav-stacked > li + li { margin-top: 2px; margin-left: 0; }
要在導(dǎo)航項之間加分隔線,在導(dǎo)航項之間加<li class=”nav-divider”></li>即可。
實現(xiàn)源碼如下:
.nav .nav-divider { height: 1px; margin: 9px 0; overflow: hidden; background-color: #e5e5e5; }
自適應(yīng)導(dǎo)航
在“nav”上追加一個“nav-justified”類名即可。例如:<ul class="nav nav-justified">
實現(xiàn)原理是,列表<ul>上設(shè)置寬度為“100%”,然后每個菜單項<li>設(shè)置了“display:table-cell”,讓列表項以模擬表格單元格的形式顯示。實現(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)選項卡導(dǎo)航,實現(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)航加下拉菜單也就是二級導(dǎo)航,只需要將li當(dāng)作父容器,使用類名“dropdown”,同時在li中嵌套另一個列表ul下拉菜單即可。例如:
<ul class="nav nav-pills"> <li><a href="##">首頁</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”,一般作用是告訴用戶現(xiàn)在所處頁面的位置。為ol加入“breadcrumb”類名即可。例如:
<ol class="breadcrumb"> <li><a href="#">111</a></li> <li><a href="#">222</a></li> <li class="active">333</li> </ol>
實現(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; }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Bootstrap每天必學(xué)之導(dǎo)航條
- Bootstrap實現(xiàn)響應(yīng)式導(dǎo)航欄效果
- Bootstrap實現(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多級導(dǎo)航欄(級聯(lián)導(dǎo)航)的實現(xiàn)代碼
相關(guān)文章
解決layui使用layui-icon出現(xiàn)默認(rèn)圖標(biāo)的問題
今天小編就為大家分享一篇解決layui使用layui-icon出現(xiàn)默認(rèn)圖標(biāo)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09JS數(shù)組push、unshift、pop、shift方法的實現(xiàn)與使用方法示例
這篇文章主要介紹了JS數(shù)組push、unshift、pop、shift方法,結(jié)合實例形式分析了JS數(shù)組push、unshift、pop、shift方法針對數(shù)組添加、刪除等相關(guān)操作技巧,需要的朋友可以參考下2020-04-04JavaScript數(shù)據(jù)結(jié)構(gòu)之單鏈表和循環(huán)鏈表
這篇文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)之單鏈表、循環(huán)鏈表,詳細(xì)的介紹了JavaScript如何實現(xiàn)單鏈表、循環(huán)鏈表,有興趣的可以了解一下2017-11-11