Bootstrap之导航条

1、导航条

导航条(navbar)和上一节介绍的导航(nav),就相差一个字,多了一个“条”字。其实在Bootstrap框架中他们还是明显的区别。在导航条(navbar)中有一个背景色(显示更突出)、而且导航条可以是纯链接(类似导航),也可以是表单,还有就是表单和导航一起结合等多种形式。在这一节中将一起探讨Bootstrap框架中导航条的使用。

导航条和导航一样,在Bootstrap框架中是一个独立组件,所以你也可以根据自己的需求使用不同的版本:

LESS版本:对应的源文件navbar.less 
Sass版本:对应的源文件_navbar.scss 
编译后的版本:查看bootstrap.css文件第3642行~第4111行(注意这个所说的Bootstrap版本是3.1.1,其它版本位置是不一致的)。

2、基础导航条

在Bootstrap框中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多。我们先来看导航条中最基础的一个——基础导航条。

1)、使用方法:

在制作一个基础导航条时,主要分以下几步:

  • 第一步:首先在制作导航的列表(<ul class=”nav”>)基础上添加类名“navbar-nav”
  • 第二步:在列表外部添加一个容器(div),并且使用类名“navbar”和“navbar-default”
?
1
2
3
4
5
6
7
8
9
< 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 >

".navbar”样式的主要功能就是设置左右padding和圆角等效果,但他和颜色相关的样式没有进行任何的设置。其主要源码如下:

/源码查看bootstrap.css文件第3642行~第3647行/

?
1
2
3
4
5
6
.navbar {
  position : relative ;
  min-height : 50px ;
  margin-bottom : 20px ;
  border : 1px solid transparent ;
}

2)、原理分析:

而导航条的颜色都是通过“.navbar-default”来进行控制:

/源码查看bootstrap.css文件第3940行~第3943行/

?
1
2
3
4
.navbar- default {
  background-color : #f8f8f8 ;
  border-color : #e7e7e7 ;
}

navbar-nav样式是在导航.nav的基础上重新调整了菜单项的浮动与内外边距。同时也不包括颜色等样式设置,源码请查看bootstrap.css文件第3785行~第3830行,我们把代码节选出来放入右侧bootstrap.css中。

而颜色和其他样式是通过配合父容器“navbar-default”来一起实现:


/源码请查看bootstrap.css文件第3955行~第3974行/

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.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 ;
}

3、为导航条添加标题、二级菜单及状态

1)、加入导航条标题

在Web页面制作中,常常在菜单前面都会有一个标题(文字字号比其它文字稍大一些),其实在Bootstrap框架也为大家做了这方面考虑,其通过“navbar-header”和“navbar-brand”来实现。

1
2
3
4
5
6
7
8
9
10
11
12
< 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 = "##" >成功案例</ a ></ li >
  < li >< a href = "##" >关于我们</ a ></ li >
  </ ul >
</ div >

2)、原理分析:

此功能主要起一个提醒功能,当然改良一下可以当作是logo(此处不做过多阐述)。其样式主要是加大了字体设置,并且设置了最大宽度:

/源码查看bootstrap.css文件第3739行~第3755行/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.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行/

?
1
2
3
4
5
6
7
8
.navbar- default .navbar-brand {
color : #777 ;
}
.navbar- default .navbar-brand:hover,
.navbar- default .navbar-brand:focus {
color : #5e5e5e ;
background-color : transparent ;
}

3)、导航条状态、二级菜单

同样的,在基础导航条中对菜单提供了当前状态,禁用状态,悬浮状态等效果,而且也可以带有二级菜单的导航条。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
< 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 >
</ div >

效果图如下:

4、带表单的导航条

有的导航条中会带有搜索表单,比如新浪微博的导航条:

在Bootstrap框架中提供了一个“navbar-form”,使用方法很简单,在navbar容器中放置一个带有navbar-form类名的表单。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
< 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-left" 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.css文件第3839行~第3904行.

在上面的示例中,大家看到了“navbar-left”让表单左浮动,更好实现对齐。在Bootstrap框架中,还提供了“navbar-right”样式,让元素在导航条靠右对齐。

/源码请查看bootstrap.css文件第3831行~第3838行/

?
1
2
3
4
5
6
7
8
@media ( min-width : 768px ) {
  .navbar- left {
  float : left !important ;
}
.navbar- right {
  float : right !important ;
  }
}

注意:这里有一个条件,只有当浏览器视窗宽度大于768px生效。

5、导航条中的按钮、文本和链接

Bootstrap框架的导航条中除了使用navbar-brand中的a元素和navbar-nav的ul和navbar-form之外,还可以使用其他元素。框架提供了三种其他样式:

  • 1、导航条中的按钮navbar-btn
  • 2、导航条中的文本navbar-text
  • 3、导航条中的普通链接navbar-link

但这三种样式在框架中使用时受到一定的限制,需要和navbar-brand、navbar-nav配合起来使用。而且对数量也有一定的限制,一般情况在使用一到两个不会有问题,超过两个就会有问题。

先来看看这三种样式对应的源码:

/源码请查看bootstrap.css文件第3914行~第3939行/

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
.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 ;
}

navbar-btn和navbar-link在上一小节已经讲过,现在我们来看一下navbar-text的一个简单应用

?
1
2
3
4
5
6
7
8
9
10
< 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 >

在结果窗口中查看效果,可以看出明显的存在问题.




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值