Bootstrap 面包屑导航(Breadcrumbs)

Bootstrap 的面包屑导航(Breadcrumbs)是其组件库中的一个轻量级导航组件,用于显示页面在网站层级结构中的位置,帮助用户理解当前页面路径并快速返回上一级。面包屑导航适合多级导航的网站,如电子商务、博客或内容管理系统。以下是对 Bootstrap 面包屑导航的中文讲解,涵盖核心功能、类名、用法和示例,基于最新版本 Bootstrap 5.3.3(截至 2025 年 10 月 11 日)。




Bootstrap 面包屑导航示例

Bootstrap 面包屑导航示例

基本面包屑

  1. 首页
  2. 分类
  3. 当前页面

自定义分隔符

  1. 首页
  2. 分类
  3. 当前页面

响应式面包屑

  1. 首页
  2. 分类
  3. 当前页面

带图标

  1. 首页
  2. 分类
  3. 当前页面

1. Bootstrap 面包屑导航概述

Bootstrap 的面包屑导航(Breadcrumbs)是一个简单的导航组件,用于展示页面在网站层级中的路径,通常以线性列表形式显示。其主要特点包括:

  • 清晰导航:帮助用户了解当前页面位置并快速返回上一级。
  • 轻量级:仅依赖 CSS,无需 JavaScript(除非结合动态功能)。
  • 响应式:适配不同屏幕尺寸,可结合响应式工具类调整布局。
  • 可访问性:支持 ARIA 属性,优化屏幕阅读器体验。
  • 可定制:通过 CSS 变量或 Sass 调整样式和分隔符。

面包屑导航通常由以下元素组成:

  • 容器<nav> 使用 aria-label="breadcrumb"
  • 列表<ol> 使用 .breadcrumb 类。
  • 列表项<li> 使用 .breadcrumb-item 类,当前页面添加 .activearia-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) 禁用或激活状态

  • 禁用项:添加 .disabledaria-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”,查看社区分享的设计技巧。

如果你需要更详细的面包屑导航讲解(例如动态生成、多级路径、结合导航栏)或实现特定效果的代码,请告诉我,我可以提供进一步的指导或示例!

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注