Bootstrap源码解读导航(6)

网友投稿 233 2023-06-23


Bootstrap源码解读导航(6)

源码解读Bootstrap导航

基础样式

制作导航条主要通过“.nav”样式。默认的“.nav”样式不提供默认的导航样式,必须附加另外一个样式才会有效,比如“nav-tabs”、“nav-pills”之类。例如:

实现源码:

.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”类名即可,例如:

实现原理是将菜单项(li)按块显示,并且让他们在同一水平上排列,然后定义非高亮菜单的样式和鼠标悬浮效果。实现源码如下:

.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”即可。

实现源码如下:

.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”即可。实现源码如下:

.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”类名即可,例如:

实现源码如下:

.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”类名即可。例如:

垂直导航与胶囊形导航相比,主要是让导航项不浮动,让其垂直排列,然后给相邻导航项留有一定的间距。

实现源码如下:

.nav-stacked > li {

float: none;

}

.nav-stacked > li + li {

margin-top: 2px;

margin-left: 0;

}

要在导航项之间加分隔线,在导航项之间加

实现源码如下:

.nav .nav-divider {

height: 1px;

margin: 9px 0;

overflow: hidden;

background-color: #e5e5e5;

}

自适应导航

在“nav”上追加一个“nav-justified”类名即可。例如:

实现原理是,列表

.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”配合在一起使用就是自适应选项卡导航,实现源码如下:

.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-tabPjKFbPkCs.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;

}

.navPjKFbPkC-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”配合在一PjKFbPkC起使用就是自适应胶囊型导航,原理同上。

导航加下拉菜单

导航加下拉菜单也就是二级导航,只需要将li当作父容器,使用类名“dropdown”,同时在li中嵌套另一个列表ul下拉菜单即可。例如:

数字

面包屑式Breadcrumb导航

面包屑不需要使用“nav”,一般作用是告诉用户现在所处页面的位置。为ol加入“breadcrumb”类名即可。例如:

实现源码如下:

.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;

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于bootstrap的文件上传控件bootstrap fileinput
下一篇:Jdk1.8 HashMap实现原理详细介绍
相关文章

 发表评论

暂时没有评论,来抢沙发吧~