Bootstrap 面包屑导航(Breadcrumbs)
Bootstrap 的面包屑导航(Breadcrumbs)是其组件库中的一个轻量级导航组件,用于显示页面在网站层级结构中的位置,帮助用户理解当前页面路径并快速返回上一级。面包屑导航适合多级导航的网站,如电子商务、博客或内容管理系统。以下是对 Bootstrap 面包屑导航的中文讲解,涵盖核心功能、类名、用法和示例,基于最新版本 Bootstrap 5.3.3(截至 2025 年 10 月 11 日)。
Bootstrap 面包屑导航示例
Bootstrap 面包屑导航示例
基本面包屑
自定义分隔符
响应式面包屑
带图标
1. Bootstrap 面包屑导航概述
Bootstrap 的面包屑导航(Breadcrumbs)是一个简单的导航组件,用于展示页面在网站层级中的路径,通常以线性列表形式显示。其主要特点包括:
- 清晰导航:帮助用户了解当前页面位置并快速返回上一级。
- 轻量级:仅依赖 CSS,无需 JavaScript(除非结合动态功能)。
- 响应式:适配不同屏幕尺寸,可结合响应式工具类调整布局。
- 可访问性:支持 ARIA 属性,优化屏幕阅读器体验。
- 可定制:通过 CSS 变量或 Sass 调整样式和分隔符。
面包屑导航通常由以下元素组成:
- 容器:
<nav>
使用aria-label="breadcrumb"
。 - 列表:
<ol>
使用.breadcrumb
类。 - 列表项:
<li>
使用.breadcrumb-item
类,当前页面添加.active
和aria-current="page"
。
2. 核心面包屑导航类
以下是Bootstrap 面包屑导航的主要类和用法:
(1) 基本面包屑
使用 .breadcrumb
和 .breadcrumb-item
创建基本的面包屑导航。
- 用法:
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="#">首页</a></li>
<li class="breadcrumb-item"><a href="#">分类</a></li>
<li class="breadcrumb-item active" aria-current="page">当前页面</li>
</ol>
</nav>
- 必要属性:
aria-label="breadcrumb"
:为屏幕阅读器提供语义。aria-current="page"
:标记当前页面。.active
:高亮当前页面(无链接)。
(2) 自定义分隔符
默认分隔符为斜杠(/
),可通过 CSS 变量 --bs-breadcrumb-divider
或 Sass 变量自定义。
- CSS 变量方式:
<nav aria-label="breadcrumb">
<ol class="breadcrumb" style="--bs-breadcrumb-divider: '>'">
<li class="breadcrumb-item"><a href="#">首页</a></li>
<li class="breadcrumb-item active" aria-current="page">当前页面</li>
</ol>
</nav>
- Sass 方式:
$breadcrumb-divider: quote(">");
@import "node_modules/bootstrap/scss/bootstrap";
(3) 带图标的面包屑
结合Bootstrap Icons 或其他图标库增强视觉效果。
- 用法:
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="#"><i class="bi bi-house-fill"></i> 首页</a></li>
<li class="breadcrumb-item active" aria-current="page">当前页面</li>
</ol>
</nav>
- 注意:需引入Bootstrap Icons(
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" rel="stylesheet">
)。
(4) 响应式面包屑
结合响应式工具类调整面包屑在不同屏幕尺寸下的布局。
- 用法:
<nav aria-label="breadcrumb">
<ol class="breadcrumb d-flex flex-column flex-md-row">
<li class="breadcrumb-item"><a href="#">首页</a></li>
<li class="breadcrumb-item"><a href="#">分类</a></li>
<li class="breadcrumb-item active" aria-current="page">当前页面</li>
</ol>
</nav>
- 效果:小屏幕垂直排列,中等屏幕及以上水平排列。
(5) 禁用或激活状态
- 禁用项:添加
.disabled
或aria-disabled="true"
。 - 用法:
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="#">首页</a></li>
<li class="breadcrumb-item disabled" aria-disabled="true">不可用</li>
<li class="breadcrumb-item active" aria-current="page">当前页面</li>
</ol>
</nav>
3. 动态面包屑
面包屑通常是静态的,但在动态网站中,可通过 JavaScript 动态生成路径。
- 示例(使用 JavaScript 动态添加):
const breadcrumb = document.querySelector('.breadcrumb');
const path = ['首页', '分类', '当前页面'];
breadcrumb.innerHTML = path.map((item, index) => {
if (index === path.length - 1) {
return `<li class="breadcrumb-item active" aria-current="page">${item}</li>`;
}
return `<li class="breadcrumb-item"><a href="#">${item}</a></li>`;
}).join('');
4. 定制面包屑
面包屑的样式基于 Sass 变量和 CSS 变量,可通过以下方式定制:
- 分隔符:
$breadcrumb-divider
或--bs-breadcrumb-divider
。 - 背景:
$breadcrumb-bg
。 - 字体:
$breadcrumb-item-font-size
。 - 间距:
$breadcrumb-item-padding-x
。
定制示例:
// custom.scss
$breadcrumb-divider: quote(">");
$breadcrumb-bg: #f8f9fa;
$breadcrumb-item-padding-x: 0.75rem;
@import "node_modules/bootstrap/scss/bootstrap";
编译后引入:
<link href="custom.css" rel="stylesheet">
5. 注意事项
- 可访问性:始终使用
aria-label="breadcrumb"
和aria-current="page"
确保屏幕阅读器支持。 - 分隔符:自定义分隔符时,确保视觉清晰且语义明确。
- 响应式测试:在小屏幕上测试面包屑的显示效果,避免溢出。
- 性能:面包屑应保持简洁,避免过多层级影响可读性。
- 动态生成:动态生成面包屑时,确保链接的
href
属性正确指向。
6. 学习资源
- 官方文档:https://getbootstrap.com/docs/5.3/components/breadcrumb/
- 中文教程:https://www.bootcss.com/(非官方)
- X 平台:搜索“Bootstrap 面包屑”或“Bootstrap Breadcrumbs”,查看社区分享的设计技巧。
如果你需要更详细的面包屑导航讲解(例如动态生成、多级路径、结合导航栏)或实现特定效果的代码,请告诉我,我可以提供进一步的指导或示例!