Bootstrap中的导航栏功能需要添加bootstrap.cssjquery.jsbootstrap.js,其中,jquery.js文件是bootstrap.js文件中必须的,否则就会抛出异常信息:Bootstrap\'s JavaScript requires jQuery

1. 工作原理

学习Navbar之前,学习知道以下知识点:

  • nav标签必须使用.navbar.navbar-expand{-sm|-md|-lg|-xl}颜色主题类进行装饰。
  • 导航栏内容默认是流动布局,可以使用containers选项来限制水平宽度。
  • 使用spacingflex类来控制导航栏项目的间隔和排列。
  • 导航栏默认是响应式的,但很容易调整为其他模式。响应式导航栏必须依赖Collapse插件。
  • 打印时,导航栏默认是隐藏的。在导航栏中添加.d-print类可以强制打印。
  • 务必使用nav元素,或者,如果使用的是通用的<div>元素的话,务必为导航条设置role="navigation"属性,这样能够让使用辅助设备的用户明确知道这是导航区域。

2. 内容支持

导航栏支持一些内置子组件,可以根据实际选择以下内容:

  • .nvabar-brand用来显示公司名称、产品名称或项目名称等。
  • .navbar-nav指定一个全高度轻量化的导航条,并支持下拉菜单。此处的全高度应该就是来说明支持下来菜单
  • .navbar-toggler使用响应式插件支持响应式行为。
  • .form-inline支持表单控件和行为。
  • .navbar-text用来添加垂直居中的文本信息
  • .collapse.navbar-collapsefor grouping and hiding navbar contents by a parent breakpoint.

3. Brand

大多数HTML标签都可以应用.navbar-brand,但是需要使用更多的类标签来定义样式。

<nav class="navbar navbar-light bg-light">
<!-- As a link -->
<a class="navbar-brand" href="#">NavBarBrand</a>
<!-- As a heading -->
<!-- mb-1 可以参考Bootstrap Spacing -->
<span class="navbar-brand ml-5 h1"></span>
</nav>

.navbar-brand中添加图片时,通常需要设置更多的样式或属性。

<nav class="navbar navbar-light bg-light">
<a class="navbar-brand" href="#">
<!--指定宽度、高度、无法显示时的替换文本 -->
<img src="XXXX" width="30" height="30" alt="">
</a>
</nav>

4. 导航项

导航栏链接使用自带的标识符来定义,且使用toggler来标识响应式行为。导航栏中的项目尽可能维持水平间隔以保持一致性。

    <!--navbar-expand-lg指定响应式行为, navbar-light bg-light定义导航栏样式 -->
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<!-- 执行导航栏的显示商标信息 -->
<a class="navbar-brand" href="#">NavBar</a>
<!-- 指定导航栏的响应式行为 -->
<!-- `data-toggle`指以什么事件触发,`data-target`指触发事件的目标标签。一起使用时表示`data-target`所指的元素以`data-toggle`指定的形式显示。 -->
<!-- `aria-*`的一系列属性都是为了应用在辅助设备上使用。 -->
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<!-- 指定按钮的显示图标 -->
<span class="navbar-toggler-icon"></span>
</button>
<!-- 导航栏内容,collapse表示隐藏内容 -->
<div class="navbar-collapse collapse " id="navbarNav">
<ul class="navbar-nav">
<!-- 每一个导航项目,active表示显示当前导航链接 -->
<li class="nav-item active">
<!-- sr-only表示除屏幕阅读器外,其他设备隐藏该元素 -->
<a class="nav-link" href="#">Home<span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricing</a>
</li>
<li class="nav-item">
<!-- disabled类指定该导航无法操作 -->
<a class="nav-link disabled" href="#">Disabled</a>
</li>
<!-- 指定导航项目为下拉列表形式 -->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown link
</a>
<!-- 下拉列表及其项目-->
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another Action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</li>
</ul>
</div>
</nav>

5. 表单

<nav class="navbar navbar-expand-lg navbar-light bg-light ">
<form class="form-inline">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
<!-- 支持Input Group -->
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon1">@</span>
</div>
<input type="text" class="form-control" placeholder="UserName" aria-label="Username" aria-describedby="basic-addon1">
</div>
</form>
</nav>

6. 文本

<nav class="navbar navbar-expand-lg navbar-light bg-light ">
<span class="navbar-text">
Navbar Text
</span>
</nav>

7. 颜色主题

导航栏的颜色需要使用navbar-{light|dark}bg-*配合使用,其中navbar-light适合使用浅背景色,navbar-dark适合使用深背景色,然后再使用bg-*来设置背景色,或者使用使用style="background-color:#e3f2fd来设置背景色。

8. 定位

  • fixed-top:固定在页面顶部
  • fixed-bottom:固定在页面底部
  • sticky-top:页面滚动显示,始终在顶部。

9. 响应式行为

使用navbar-togglernavbar-collapsenavbar-expand{-sm|md|lg|xl}等类设置导航链接的折叠与显示。

若导航栏始终不需要折叠,则在nav中添加navbar-expand类标签,若需要导航栏始终折叠,不要添加

任何navbar-expand类标签,

navbar-brand定义了导航栏的品牌信息,其后跟着一个button,采用navbar-toggler装饰,它表示导航栏在折叠式,该按钮会显示出来。其中,navbar-expand装饰的元素A的位置和navbar-toggler装饰的元素B的位置是根据该元素在代码中的位置定义的,比如,A在B的上面定义,则A在左边,B在右边,A在B的下面定义,则A在右边,B在左边。

原文链接:Bootstrap V4.0 导航栏介绍

Bootstrap学习记录-1.Navigation的更多相关文章

  1. bootstrap学习记录(慕课网教程)

    1.当主标题下需要副标题时可在h中嵌套small<h1>nihao<small>a</samll></h1> 2.当某一段落需要突出显示时可添加lead ...

  2. 积跬步,聚小流------Bootstrap学习记录(2)

    现阶段开启每一次新的征程,已然离不开"Hello World"的习惯仪式.这次自然也不例外.先来看下给出的官网给出的演示样例: 1.bootstrap官网提供的html基本模板代码 ...

  3. Bootstrap学习记录-3.Badge、Breadcrumb、Buttons、 Button Group、Card、Carousel

    1. Badge Badge作为数值标记组件,它能作为链接或按钮的一部分来提供计数作用,而且它通过使用相对字体大小来适应父级元素的大小.它的最基本的修饰符为.badge .badge-*. <b ...

  4. Bootstrap学习记录-2.container和table

    1. Container Bootstrap中容器类提供了2个类标识:container.container-fluid. 两者的区别在于: container:容器不止有15px的padding,还 ...

  5. Bootstrap学习记录

    中文官网 Bootstrap 插件 Bootstrap Multiselect bootstrap-multiselect 的简单使用,样式修改,动态创建option JS组件系列——Bootstra ...

  6. 积跬步,聚小流------Bootstrap学习记录(3)

    响应式作为Bootstrap的一大特色.栅格系统可谓是功不可没,既然如此,那我们就来看一下栅格系统是怎样帮助bootstrap实现响应式布局的呢? 1.什么是栅格系统 我们能够从Bootstrap的官 ...

  7. 积跬步,聚小流------Bootstrap学习记录(1)

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...

  8. Bootstrap 我的学习记录3 导航条理解

    以下理论内容copy自Bootstrap中文网 (一个不错的bootstrap学习网站) 导航条 默认样式的导航条 导航条是在您的应用或网站中作为导航页头的响应式基础组件.它们在移动设备上可以折叠(并 ...

  9. Bootstrap 我的学习记录2 栅格系统初识

    以下理论内容copy自bootstrap中文网(一个不错的bootstrap学习网站). 栅格系统 Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport) ...

随机推荐

  1. vb WIN32 API获取syslistview行数

    Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal ...

  2. 容器启动脚本报错:exec user process caused "no such file or directory"

    1.现象 standard_init_linux.go:: exec user process caused "no such file or directory" 2.原因 原因 ...

  3. python之路(六)-函数相关

    在没有学习函数之前我们的程序是面向过程的,不停的判断,不停的循环,同样的代码重复出现在我们的代码里.函数可以更好的提高我们的 代码质量,避免同样的代码重复出现,而只需要在用的时候调用函数即可执行.此为 ...

  4. Servlet 中,out.print()与out.write()的区别

    最近刚学习了Ajax,其中有通过$.getJSON的实现方式 由于前后端传递值的时候会通过流的方式进行传递,这就不得不涉及到这方面的知识了 PrintWrite out=response.getWri ...

  5. Centos安装Grafana

    下载:https://grafana.com/grafana/download $ wget wget https://s3-us-west-2.amazonaws.com/grafana-relea ...

  6. OCP 12c考试题,062题库出现大量新题-第20道

    choose three Your database is configured for ARCHIVELOG mode, and a daily full database backup is ta ...

  7. Android热修复——Tinker的集成

    前言 做前端开发的都知道,当我们项目做完了以后,都会把应用上传到应用市场上供用户下载使用,比如上传到应用宝啊,应用汇啊,360啊,小米,华为,魅族啊,等等但是,有时候我们会经常遇到一些很扯淡的事情,刚 ...

  8. css font-family属性设置中文字体乱码

    一般设置字体,个人都喜欢用中文,比如:font-family:"微软雅黑":但是偶尔会出现设置以后字体显示乱码的问题 解决方法[1]: 看看你的CSS文件的第一行有没有:@char ...

  9. Servlet案例3:验证码功能

    这里介绍简单的验证码功能 动态生成图片 一个简单的页面: <!DOCTYPE html> <html> <head> <meta charset=" ...

  10. [Swift]LaunchScreen.storyboard设置启动页

    设置[General]->[App Icons and Launch Images] 注意:当App不是用LaunchScreen.xib来配置启动页时,[LaunchScreen File]置 ...