【Bootstrap V4系列】学习入门教程之 组件-导航条(Navbar)
Bootstrap V4系列 学习入门教程之 组件-导航条(Navbar)
- 导航条(Navbar)
- 一、How it works
- 二、Supported content 支持的内容
- 2.1 Brand 品牌
- 2.2 Nav 导航
- 2.3 Forms 表格
- 三、Color schemes 配色方案
- 四、Containers 容器
- 五、Placement 放置方式
- 六、Responsive behaviors 响应式行为
导航条(Navbar)
Bootstrap功能强大、响应迅速的导航头navbar的文档和示例。包括对品牌、导航、折叠插件等的支持。
一、How it works
在开始使用导航栏之前,您需要了解以下内容:
- 导航栏需要一个带有
.navbar-expand{-sm|-md|-lg|-xl}
的.navbar
包装,用于响应式折叠和配色方案类。 - 默认情况下,导航栏及其内容是流畅的。使用可选容器来限制其水平宽度。
- 使用我们的间距和flex实用程序类来控制导航栏中的间距和对齐。
- 默认情况下,导航栏是响应式的,但您可以轻松修改它们以更改这一点。响应行为取决于我们的Collapse JavaScript插件。
- 默认情况下,打印时导航栏隐藏。通过在
.navbar
中添加.d-print来强制打印它们。请参见显示实用程序类。 - 使用
<nav>
元素确保可访问性,或者,如果使用更通用的元素,如<div>
,则在每个导航栏中添加role=“navigation”
,以明确地将其标识为辅助技术用户的地标区域。
二、Supported content 支持的内容
导航栏内置了对少数子组件的支持。根据需要从以下选项中选择:
.navbar-brand
品牌代表您的公司、产品或项目名称。.navbar-nav
导航用于全高和轻量级导航(包括支持下拉)。.navbar-toggler
切换器,用于我们的折叠插件和其他导航切换行为。.form-inline
内联用于任何表单控件和操作。.navbar-text
文本,用于添加垂直居中的文本字符串。.collapse.navbar-collapse
用于按父断点对导航栏内容进行分组和隐藏。
这是一个包含在响应式灯光主题导航栏中的所有子组件的示例,该导航栏在lg
(large)断点处自动折叠。
<nav class="navbar navbar-expand-lg navbar-light bg-light"><a class="navbar-brand" href="#">Navbar</a><button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item active"><a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a></li><li class="nav-item"><a class="nav-link" href="#">Link</a></li><li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-expanded="false">Dropdown</a><div class="dropdown-menu"><a class="dropdown-item" href="#">Action</a><a class="dropdown-item" href="#">Another action</a><div class="dropdown-divider"></div><a class="dropdown-item" href="#">Something else here</a></div></li><li class="nav-item"><a class="nav-link disabled">Disabled</a></li></ul><form class="form-inline my-2 my-lg-0"><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></form></div>
</nav>
页面展示效果:
2.1 Brand 品牌
.navbar-brand
品牌可以应用于大多数元素,但锚点效果最好,因为一些元素可能需要实用类或自定义样式。
<!-- As a link -->
<nav class="navbar navbar-light bg-light"><a class="navbar-brand" href="#">Navbar</a>
</nav><!-- As a heading -->
<nav class="navbar navbar-light bg-light"><span class="navbar-brand mb-0 h1">Navbar</span>
</nav>
页面展示效果:
<!-- Image and text -->
<nav class="navbar navbar-light bg-light"><a class="navbar-brand" href="#"><img src="/docs/4.6/assets/brand/bootstrap-solid.svg" width="30" height="30" class="d-inline-block align-top" alt="">Bootstrap</a>
</nav>
页面展示效果:
2.2 Nav 导航
导航栏导航链接基于我们的.nav
选项,具有自己的修饰符类,需要使用切换类来实现适当的响应样式。导航栏中的导航也将增长到占用尽可能多的水平空间,以保持导航栏内容的安全对齐。
活动状态(带有.Active
)表示当前页面可以直接应用于.nav-link
s 链接或其直接父级.nav-item
s项目。
<nav class="navbar navbar-expand-lg navbar-light bg-light"><a class="navbar-brand" href="#">Navbar</a><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><div class="collapse navbar-collapse" id="navbarNav"><ul class="navbar-nav"><li class="nav-item active"><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"><a class="nav-link disabled">Disabled</a></li></ul></div>
</nav>
页面展示效果:
由于我们使用类进行导航,如果你愿意,你可以完全避免基于列表的方法。
<nav class="navbar navbar-expand-lg navbar-light bg-light"><a class="navbar-brand" href="#">Navbar</a><button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button><div class="collapse navbar-collapse" id="navbarNavAltMarkup"><div class="navbar-nav"><a class="nav-link active" href="#">Home <span class="sr-only">(current)</span></a><a class="nav-link" href="#">Features</a><a class="nav-link" href="#">Pricing</a><a class="nav-link disabled">Disabled</a></div></div>
</nav>
页面展示效果:
您还可以在导航栏中使用下拉菜单。下拉菜单需要一个包装元素来定位,因此请确保为.nav-item
项目和.nav-link
链接使用单独的嵌套元素,如下所示。
<nav class="navbar navbar-expand-lg navbar-light bg-light"><a class="navbar-brand" href="#">Navbar</a><button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button><div class="collapse navbar-collapse" id="navbarNavDropdown"><ul class="navbar-nav"><li class="nav-item active"><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 dropdown"><a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-expanded="false">Dropdown link</a><div class="dropdown-menu"><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>
页面展示效果:
2.3 Forms 表格
将各种窗体控件和组件放置在带有.form-inline
内联的导航栏中。
<nav class="navbar 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></form>
</nav>
页面展示效果:
.navbar
的直接子元素使用灵活布局,并将默认为justify-content: space-between
。根据需要使用其他flex实用程序来调整此行为。
<nav class="navbar navbar-light bg-light"><a class="navbar-brand">Navbar</a><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></form>
</nav>
页面展示效果:
输入组也起作用:
<nav class="navbar navbar-light bg-light"><form class="form-inline"><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>
页面展示效果:
三、Color schemes 配色方案
由于主题类和背景颜色实用程序的结合,导航栏的主题化从未如此简单。从.navbar-light
中选择用于浅色背景的颜色,或.navbar-dark
用于深色背景的颜色。然后,使用.bg-*
实用程序进行自定义。
<nav class="navbar navbar-dark bg-dark"><!-- Navbar content -->
</nav><nav class="navbar navbar-dark bg-primary"><!-- Navbar content -->
</nav><nav class="navbar navbar-light" style="background-color: #e3f2fd;"><!-- Navbar content -->
</nav>
页面展示效果:
四、Containers 容器
虽然这不是必需的,但您可以将导航栏包裹在.container
中,使其位于页面的中心。或者,您可以在.navbar
中添加一个容器,仅将固定或静态顶部导航栏的内容居中。
<div class="container bg-primary"><nav class="navbar navbar-expand-lg navbar-light bg-secondary"><a class="navbar-brand" href="#">Navbar</a></nav>
</div>
页面展示效果:
<nav class="navbar navbar-expand-lg navbar-light bg-secondary"><div class="container bg-primary"><a class="navbar-brand" href="#">Navbar</a></div>
</nav>
页面展示效果:
五、Placement 放置方式
使用我们的位置实用程序将导航栏放置在非静态位置。从固定到顶部、固定到底部或粘贴到顶部(随页面滚动直到到达顶部,然后保持在那里)中进行选择。固定导航栏使用position:Fixed
,这意味着它们是从DOM的正常流中提取的,可能需要自定义CSS(例如,在上填充顶部)来防止与其他元素重叠。
另请注意,.tick-top
使用position:sticky
,并非每个浏览器都完全支持它。
<nav class="navbar navbar-light bg-light"><a class="navbar-brand" href="#">Default</a>
</nav>
默认的,页面展示效果:
<nav class="navbar fixed-top navbar-light bg-light"><a class="navbar-brand" href="#">Fixed top</a>
</nav>
固定到顶部,页面展示效果:
<nav class="navbar fixed-bottom navbar-light bg-light"><a class="navbar-brand" href="#">Fixed bottom</a>
</nav>
固定到底部,页面展示效果:
<nav class="navbar sticky-top navbar-light bg-light"><a class="navbar-brand" href="#">Sticky top</a>
</nav>
粘贴到顶部,页面展示效果:
六、Responsive behaviors 响应式行为
默认情况下,导航栏开关是左对齐的,但如果它们跟在像.navbar-brand
这样的兄弟元素后面,它们将自动对齐到最右侧。反转标记将反转触发器的位置。以下是不同切换样式的示例。
最小断点处未显示.navbar-brand
:
<nav class="navbar navbar-expand-lg navbar-light bg-light"><button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo01" aria-controls="navbarTogglerDemo01" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button><div class="collapse navbar-collapse" id="navbarTogglerDemo01"><a class="navbar-brand" href="#">Hidden brand</a><ul class="navbar-nav mr-auto mt-2 mt-lg-0"><li class="nav-item active"><a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a></li><li class="nav-item"><a class="nav-link" href="#">Link</a></li><li class="nav-item"><a class="nav-link disabled">Disabled</a></li></ul><form class="form-inline my-2 my-lg-0"><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></form></div>
</nav>
页面展示效果:
随着浏览器窗口变化,页面展示效果:
左侧显示品牌名称,右侧显示开关:
<nav class="navbar navbar-expand-lg navbar-light bg-light"><a class="navbar-brand" href="#">Navbar</a><button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button><div class="collapse navbar-collapse" id="navbarTogglerDemo02"><ul class="navbar-nav mr-auto mt-2 mt-lg-0"><li class="nav-item active"><a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a></li><li class="nav-item"><a class="nav-link" href="#">Link</a></li><li class="nav-item"><a class="nav-link disabled">Disabled</a></li></ul><form class="form-inline my-2 my-lg-0"><input class="form-control mr-sm-2" type="search" placeholder="Search"><button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button></form></div>
</nav>
页面展示效果:
随着浏览器窗口变化,页面展示效果: