Bootstrap 导航

Posted 不重名

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bootstrap 导航相关的知识,希望对你有一定的参考价值。

摘要:主要是关于bootstrap中导航元素和导航栏的内容。

1.导航元素

bootstrap提供的导航元素使用相同的基类.nav。根据类的不同,可以创建两种不同类型的导航:表格导航菜单(标签式导航菜单 .nav-tabs)和胶囊式导航菜单(.nav-pills)。其中胶囊式导航菜单包括基本的胶囊式导航菜单((.nav-pills)和垂直胶囊式菜单(.nav-pills + .nav-stacked)。

1.1 表格导航菜单(标签  .nav-tabs)

在无序列表中使用类 .nav-tabs.注意别忘了基类 .nav。代码示例:

1 <p>标签式导航菜单</p>
2 <ul class="nav nav-tabs">
3     <li><a href="#">Home</a></li>
4     <li><a href="#">html</a></li>
5     <li class="active"><a href="#">CSS</a></li>
6     <li><a href="#">javascript</a></li>
7     <li><a href="#">Java</a></li>
8 </ul>

显示:
           

1.2 胶囊式导航菜单

胶囊式导航菜单,除了使用基类.nav之外。使用类 .nav-pills 。

基本的胶囊式导航菜单

代码示例:

<p>标签式导航菜单</p>
<ul class="nav nav-pills">
    <li class="active"><a href="#">Home</a></li>
    <li><a href="#">HTML</a></li>
    <li><a href="#">CSS</a></li>
    <li><a href="#">javascript</a></li>
    <li><a href="#">Java</a></li>
</ul>

显示:

           

垂直的胶囊式导航菜单(.nav-stacked)

代码示例:

1 <p>垂直的胶囊式导航菜单</p>
2 <ul class="nav nav-pills nav-stacked">
3     <li class="active"><a href="#">Home</a></li>
4     <li><a href="#">HTML</a></li>
5     <li><a href="#">CSS</a></li>
6     <li><a href="#">javascript</a></li>
7     <li><a href="#">Java</a></li>
8 </ul>

显示:

      

 1.3 两端对齐

为了让导航菜单的宽度与父元素等宽,可以使用类 .nav-justified.例如:

 1 <p>标签式导航菜单</p>
 2 <ul class="nav nav-tabs nav-justified">
 3     <li><a href="#">Home</a></li>
 4     <li><a href="#">HTML</a></li>
 5     <li class="active"><a href="#">CSS</a></li>
 6     <li><a href="#">javascript</a></li>
 7     <li><a href="#">Java</a></li>
 8 </ul>
 9 <p>基本的胶囊式导航菜单</p>
10 <ul class="nav nav-pills nav-justified">
11     <li class="active"><a href="#">Home</a></li>
12     <li><a href="#">HTML</a></li>
13     <li><a href="#">CSS</a></li>
14     <li><a href="#">javascript</a></li>
15     <li><a href="#">Java</a></li>
16 </ul>

结果显示:


1.4 禁用链接(disabled)

 在无序列表的选项<li>中添加类 .disabled .该选项就会是禁用,呈现灰色状态,同时禁用了该选项的 :hover 状态。例如:

1 <p>标签式导航菜单</p>
2 <ul class="nav nav-tabs">
3     <li class="active"><a href="#">Home</a></li>
4     <li><a href="#">HTML</a></li>
5     <li><a href="#">CSS</a></li>
6     <li><a href="#">javascript</a></li>
7     <li class="disabled"><a href="#">Java禁用</a></li>
8 </ul>

显示:


1.5 带有下拉菜单的导航菜单

带有下拉菜单的标签式导航菜单

把列表选项<li>中的锚元素作为下拉菜单的触发器即可。代码示例:

 1 <ul class="nav nav-tabs">
 2     <li class="active"><a href="#">Home</a></li>
 3     <li><a href="#">SVN</a></li>
 4     <li><a href="#">ios</a></li>
 5     <li class="dropdown">
 6         <a class="dropdown-toggle" data-toggle="dropdown" href="#">
 7             web <span class="caret"></span>
 8         </a>
 9         <ul class="dropdown-menu">
10             <li class="active"><a href="#">html</a></li>
11             <li><a href="#">css</a></li>
12             <li><a href="#">javascript</a></li>
13             <li><a href="#">php</a></li>
14         </ul>
15     </li>
16 </ul>

显示:

 

带有下拉菜单的胶囊式导航菜单

把上述程序中第一行中的 nav-tabs 换成 nav-pills 即可。显示结果:

 

 2. 导航栏(.navbar)

导航栏在应用或网站中作为导航页头,是一种响应式组件。导航栏在移动设备的视图中是折叠的,随着可用视口宽度的增加,导航栏也会水平展开。在 Bootstrap 导航栏的核心中,导航栏包括了站点名称和基本的导航定义样式。分为默认的导航栏和响应式的导航栏。

2.1 默认的导航栏(.navbar-default)

 1 <nav class="navbar navbar-default" role="navigation">
 2     <div class="navbar-header">
 3         <a class="navbar-brand" href="#">home</a>
 4     </div>
 5     <div>
 6         <ul class="nav navbar-nav">
 7             <li><a href="#">school</a></li>
 8             <li><a href="#">restraunt</a></li>
 9             <li><a href="#">domistry</a></li>
10             <li class="dropdown">
11                 <a class="dropdown-toggle" data-toggle="dropdown" href="#">
12                     library <span class="caret"></span>
13                 </a>
14                 <ul class="dropdown-menu">
15                     <li><a href="#">F1</a></li>
16                     <li><a href="#">F2</a></li>
17                     <li><a href="#">F3</a></li>
18                 </ul>
19             </li>
20         </ul>
21     </div>
22 </nav>

显示结果:

其中,第1行:<nav>元素是导航栏标签,添加类.navbar 和.navbar-default 可以获得默认的导航栏样式。向<nav>元素添加 role="navigation" ,有助于增加可读性。
第2行:带有类.navbar-header的<div>元素,是导航栏的标题部分。在锚元素中使用类.navbar-brand是为了让标题链接的文本看起来大一些。

第6行:是为导航栏添加链接,就像第一部分的导航菜单。使用无序列表(.nav  + .navbar-nav(注意不是nav-tabs, 这里表示是导航栏的菜单))表示。

2.2 响应式的导航栏 (collapse)

代码示例:

 1 <nav class="navbar navbar-default" role="navigation">
 2     <div class="navbar-header">
 3         <button class="navbar-toggle" data-toggle="collapse" data-target="#example">
 4             <span class="sr-only">汉堡按钮切换导航</span>
 5             <span class="icon-bar"></span>
 6             <span class="icon-bar"></span>
 7             <span class="icon-bar"></span>
 8         </button>
 9         <a href="#" class="navbar-brand">web</a>
10     </div>
11     <div class="collapse navbar-collapse" id="example">
12         <ul class="nav navbar-nav">
13             <li class="active"><a href="#">HTML</a></li>
14             <li><a href="#">CSS</a></li>
15             <li><a href="#">javascript</a></li>
16             <li class="dropdown">
17                 <a href="#" class="dropdown-toggle" data-toggle="dropdown">
18                     java<span class="caret"></span>
19                 </a>
20                 <ul class="dropdown-menu">
21                     <li><a href="#">jmeter</a></li> 
22                     <li><a href="#">EJB</a></li> 
23                     <li><a href="#">Jasper Report</a></li>
24                 </ul>
25             </li>
26         </ul>
27     </div>
28 </nav>

显示结果:

点击汉堡按钮之前:                                                                                 点击右边的汉堡按钮之后:

                                

解释分析:

默认的导航栏的导航菜单是直接显示在导航栏中,而响应式导航栏是通过点击右边的汉堡按钮来获得导航菜单选项的。上述程序中

第3~8行:创建一个汉堡按钮,作为折叠的触发器。其中<span class="icon-bar">是汉堡按钮中的横。三句代表三横。data-toggle="collapse"表示 该按钮具有折叠的作用。                data-target="#id"表示要折叠的内容元素锁定到该按钮上。其中第四行的<span class="sr-only">汉堡按钮切换导航</span>中的类 .sr-only可以使包含的文本隐                     藏,即汉堡按钮切换导航并不在按钮中显示。

第11~27行:是折叠的内容。包裹在带有类 .collapse + .navbar-collapse 的<div>容器中。折叠的内容与默认导航栏的创建方式相同,不在赘述。

 2.3 导航栏中的表单(.navbar-form)

可以向导航栏中添加表单,也就是把导航栏中导航菜单部分换成导航栏表单(.navbar-form)即可。代码示例:

 1 <nav class="navbar navbar-default" role="navigation">
 2     <div class="navbar-header">
 3         <a href="#" class="navbar-brand">导航栏标题</a>
 4     </div>
 5     <我在 Bootstrap4 中提到了修复导航栏。但是导航栏在我的代码中溢出

使用导航从一个片段导航到另一个片段后,防止后按工作

条件片段和导航重用

Android底部导航片段问题

使用 NavController 从片段导航到另一个片段

addToBackStack 没有导航回正确的片段