8.5 标签页 8.5.1 静态标签页

8.5 标签页

标签页和导航条的区别

本节所介绍的标签页和前一章所介绍的标签式导航、胶囊式导航非常相似,但二者存在一定的区别:
对于标签式导航、胶囊式导航,它们只是简单的导航链接;而本节所介绍的标签页并不用于导航,而是用于切换底部的内容面板
Bootstrap的标签页插件依赖transition.jsscrollspy.js库。这两个JS库包含在bootstrap.jsbootstrap.min.js中。

8.5.1 静态标签页

Bootstrap的标签页由如下两个部分组成。

  1. 导航组件:该导航组件与前面介绍的标签式导航、胶囊式导航完全相同。
  2. 内容面板:内容面板通常是一个被指定了class="tab-content"<div>元素,内容面板可以包含多个标签页,每个标签页又通常是一个被指定了class="tab-pane"<div>元素。

程序示例

了解了标签页的结构之后,接下来即可按该结构来构建静态标签页组件。如下代码构建了一个简单的标签页。

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
<!DOCTYPE html>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title> 静态标签页 </title>
<link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="../bootstrap/css/bootstrap-theme.min.css">
</head>

<body>
<div class="container">
<!-- 导航条 -->
<ul class="nav nav-tabs">
<li class="active"><a href="#">疯狂Java讲义</a></li>
<li><a href="#">疯狂Android讲义</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false">前端图书
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="#">疯狂HTML 5讲义</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">疯狂前端开发讲义</a></li>
</ul>
</li>
</ul>
<!-- 内容面板 -->
<div class="tab-content">
<!-- 标签页 -->
<div class="tab-pane active">
<h3>疯狂Java讲义</h3>
<p>必读的Java学习经典,你懂的,不多说。</p>
</div>
<!-- 标签页 -->
<div class="tab-pane">
<h3>疯狂Android讲义</h3>
<p>最全面、最详细的Android学习图书,全面覆盖Android开发手册</p>
</div>
<div class="tab-pane">
<h3>疯狂HTML 5讲义</h3>
<p>全面、细致的前端开发基础图书,全面深入介绍HTML 5/CSS 3/JavaScript知识。</p>
</div>
<div class="tab-pane">
<h3>疯狂前端开发讲义</h3>
<p>前端开发的进阶图书,全面深入介绍jQuery/AngularJS/Bootstrap等框架。</p>
</div>
</div>
</div>
<script type="text/javascript" src="../jquery-3.1.1.js"></script>
<script type="text/javascript" src="../bootstrap/js/bootstrap.min.js"></script>
</body>

</html>

在这个示例中,前面部分代码定义了一个标签式导航,这个标签式导航与前一章介绍的并没有任何区别。后面部分代码则用于定义标签页的内容面板,需要为内容面板指定class="tab-content",对内容面板的每个标签页都需要指定class="tab-pane"样式
这里将标签式导航的第一个导航链接设为激活状态,同时也将内容面板中第一个标签页设为激活状态,这样即可使标签状态与标签页状态保持一致。
本示例的标签页是静态的,还不能响应用户的操作,因此标签页不会随着用户鼠标单击而切换。
提示:本示例中的标签页上面的导航链接下还嵌套了下拉菜单,实际上不嵌套下拉菜单也是允许的,而且更加简单。