Bootstrap - 导航栏:专业网页导航的门户
你好,未来的网页开发者们!今天,我们将深入现代网页设计最重要的组成部分之一:导航栏(navbar)。作为你友善的计算机老师,我很兴奋能带领你们进入Bootstrap导航栏的奇妙世界。所以,拿起你最喜欢的饮料,舒适地坐好,让我们一起开始这段编码冒险!
工作原理
在开始构建我们的导航栏之前,先来了解一下导航栏是什么以及它们是如何工作的。导航栏(navbar),简称导航条,就像是你的网站的地图。它帮助用户在你的数字作品中找到方向。在Bootstrap中,导航栏是响应式的,并且默认会折叠,这意味着它们可以完美地适应不同的屏幕尺寸。这难道不酷吗?
基本导航栏
让我们从一个基本的导航栏开始。以下是一个简单的例子:
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">我的网站</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="切换导航">
<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="#">首页 <span class="sr-only">(当前)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">关于</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">服务</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">联系</a>
</li>
</ul>
</div>
</nav>
让我们分解一下:
- 我们从一个带有Bootstrap类的
<nav>
元素开始。 -
navbar-brand
类用于你的网站名称或标志。 -
navbar-toggler
用于移动视图,创建著名的“汉堡”菜单。 - 在
navbar-collapse
的div
内部,我们有我们的导航项在一个无序列表中。
垂直导航栏
想要来点新意吗?让我们尝试一个垂直的导航栏:
<nav class="navbar navbar-light bg-light flex-column">
<a class="navbar-brand" href="#">垂直导航</a>
<nav class="nav flex-column">
<a class="nav-link active" href="#">首页</a>
<a class="nav-link" href="#">关于</a>
<a class="nav-link" href="#">服务</a>
<a class="nav-link" href="#">联系</a>
</nav>
</nav>
这里的魔法在于flex-column
类。它将我们的水平导航栏变成了一个时尚的垂直导航栏。酷炫吧?
居中导航栏
对于那些喜欢一切对齐的人来说,这里是如何将导航栏项居中的方法:
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="navbar-nav mx-auto">
<a class="nav-item nav-link active" href="#">首页</a>
<a class="nav-item nav-link" href="#">关于</a>
<a class="nav-item nav-link" href="#">服务</a>
<a class="nav-item nav-link" href="#">联系</a>
</div>
</nav>
在这里,mx-auto
类是我们的居中超级英雄。它在两边应用自动边距,从而居中我们的内容。
品牌
你的品牌就是你的身份。让我们看看如何让它发光:
<nav class="navbar navbar-light bg-light">
<a class="navbar-brand" href="#">
<img src="/path/to/logo.png" width="30" height="30" class="d-inline-block align-top" alt="">
Bootstrap
</a>
</nav>
这段代码在品牌名称旁边添加了一个标志。d-inline-block
和align-top
类确保所有内容对齐得很好。
文本
有时,你只需要在导航栏中添加一些普通文本:
<nav class="navbar navbar-light bg-light">
<span class="navbar-text">
导航栏中的内联元素文本
</span>
</nav>
navbar-text
类将你的文本样式化为与导航栏的外观相匹配。
图片和文本
让我们结合图片和文本,打造一个更动态的导航栏:
<nav class="navbar navbar-light bg-light">
<a class="navbar-brand" href="#">
<img src="/path/to/logo.png" width="30" height="30" class="d-inline-block align-top" alt="">
Bootstrap
</a>
<span class="navbar-text">
欢迎访问我们的网站!
</span>
</nav>
这创建了一个带有标志和欢迎信息的导航栏。看起来很专业吧?
导航组件
nav
组件是我们导航栏的心脏。让我们看一个更复杂的例子:
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">导航栏</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="切换导航">
<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="#">首页 <span class="sr-only">(当前)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">功能</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">定价</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">禁用</a>
</li>
</ul>
</div>
</nav>
这个例子包含了一个活动链接、常规链接和一个禁用链接。sr-only
类是为屏幕阅读器设计的,提高了可访问性。
无列表导航栏
为了更干净的外观,你可以创建一个没有列表的导航栏:
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">导航栏</a>
<div class="navbar-nav">
<a class="nav-item nav-link active" href="#">首页</a>
<a class="nav-item nav-link" href="#">功能</a>
<a class="nav-item nav-link" href="#">定价</a>
<a class="nav-item nav-link disabled" href="#" tabindex="-1" aria-disabled="true">禁用</a>
</div>
</nav>
这在不使用<ul>
和<li>
标签的情况下实现了相同的结果。
带下拉菜单的导航栏
准备好升级了吗?让我们给导航栏添加一个下拉菜单:
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">导航栏</a>
<div class="navbar-nav">
<a class="nav-item nav-link active" href="#">首页</a>
<a class="nav-item nav-link" href="#">链接</a>
<div class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
下拉链接
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<a class="dropdown-item" href="#">操作</a>
<a class="dropdown-item" href="#">另一个操作</a>
<a class="dropdown-item" href="#">在这里的其他内容</a>
</div>
</div>
</div>
</nav>
dropdown-toggle
类创建下拉效果,而dropdown-menu
和dropdown-item
类则用于样式化下拉内容。
表单
需要一个搜索栏?没问题!以下是如何在导航栏中添加表单的方法:
<nav class="navbar navbar-light bg-light">
<form class="form-inline">
<input class="form-control mr-sm-2" type="search" placeholder="搜索" aria-label="搜索">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">搜索</button>
</form>
</nav>
form-inline
类使我们的表单元素保持在一行中,非常适合导航栏。
颜色方案
Bootstrap提供了多种颜色方案。以下是一个深色导航栏:
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="#">深色导航栏</a>
<div class="navbar-nav">
<a class="nav-item nav-link active" href="#">首页</a>
<a class="nav-item nav-link" href="#">功能</a>
<a class="nav-item nav-link" href="#">定价</a>
</div>
</nav>
只需将navbar-light
改为navbar-dark
,将bg-light
改为bg-dark
。很简单!
容器
为了更好的对齐,你可以将导航栏内容包裹在容器中:
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container">
<a class="navbar-brand" href="#">包含导航栏</a>
<div class="navbar-nav">
<a class="nav-item nav-link active" href="#">首页</a>
<a class="nav-item nav-link" href="#">功能</a>
<a class="nav-item nav-link" href="#">定价</a>
</div>
</div>
</nav>
container
类使内容居中并提供响应式固定宽度。
位置
固定顶部
想让导航栏固定在顶部吗?以下是如何做到的:
<nav class="navbar fixed-top navbar-light bg-light">
<a class="navbar-brand" href="#">固定顶部</a>
</nav>
fixed-top
类使你的导航栏在用户滚动时保持在页面顶部。
响应式行为
Bootstrap导航栏默认是响应式的。它们在小屏幕上折叠,在大屏幕上展开。关键在于navbar-expand-*
类:
<nav class="navbar navbar-expand-md navbar-light bg-light">
<!-- 导航栏内容 -->
</nav>
这个导航栏将在中等尺寸屏幕和更大尺寸上展开。
切换器
导航栏切换器是创建移动设备上“汉堡”菜单的东西:
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">导航栏</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="切换导航">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<!-- 导航栏内容 -->
</div>
</nav>
navbar-toggler
按钮控制小屏幕上导航栏内容的可见性。
外部内容
你也可以切换导航栏之外的内容:
<nav class="navbar navbar-light bg-light">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggleExternalContent" aria-controls="navbarToggleExternalContent" aria-expanded="false" aria-label="切换导航">
<span class="navbar-toggler-icon"></span>
</button>
</nav>
<div class="collapse" id="navbarToggleExternalContent">
<div class="bg-dark p-4">
<h5 class="text-white h4">折叠内容</h5>
<span class="text-muted">通过导航栏品牌切换。</span>
</div>
</div>
这创建了一个切换器,控制导航栏之外的内容。
侧边栏
最后,让我们看看侧边栏导航栏:
<nav class="navbar navbar-light bg-light">
<div class="container-fluid">
<button class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasNavbar" aria-controls="offcanvasNavbar">
<span class="navbar-toggler-icon"></span>
</button>
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasNavbar" aria-labelledby="offcanvasNavbarLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasNavbarLabel">侧边栏</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="关闭"></button>
</div>
<div class="offcanvas-body">
<!-- 侧边栏内容 -->
</div>
</div>
</div>
</nav>
这创建了一个从屏幕侧面滑入的侧边栏,非常适合移动导航。
就这样,伙计们!我们一起穿越了Bootstrap导航栏的世界,从基本结构到高级功能。记住,熟能生巧,所以不要害怕尝试这些例子。快乐编码,愿你的导航栏永远引导用户走向正确的方向!
Credits: Image by storyset