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