Skip to main content Skip to docs navigation
View on GitHub

面包屑导航(Breadcrumb)

面包屑导航(Breadcrumb)用于指示当前页面在导航层级中的位置,并通过 CSS 为各导航条目之间自动添加分隔符。

示例

通过使用带有链接列表项(<li> 元素)的有序(<ol> 元素)或无序列表(<ul> 元素)来创建一个具有最少样式的面包屑导航(breadcrumb)组件。使用我们提供的工具类可以根据需要添加其它样式。

<nav aria-label="breadcrumb">
  <ol class="breadcrumb">
    <li class="breadcrumb-item active" aria-current="page">Home</li>
  </ol>
</nav>

<nav aria-label="breadcrumb">
  <ol class="breadcrumb">
    <li class="breadcrumb-item"><a href="#">Home</a></li>
    <li class="breadcrumb-item active" aria-current="page">Library</li>
  </ol>
</nav>

<nav aria-label="breadcrumb">
  <ol class="breadcrumb">
    <li class="breadcrumb-item"><a href="#">Home</a></li>
    <li class="breadcrumb-item"><a href="#">Library</a></li>
    <li class="breadcrumb-item active" aria-current="page">Data</li>
  </ol>
</nav>

改变分隔符

分隔符是通过 CSS 的 ::beforecontent 两个属性自动添加的。如果需要的话,可以通过修改本地的自定义 CSS 属性 --bs-breadcrumb-divider 或 Sass 变量 $breadcrumb-divider(以及对应 RTL 的变量 $breadcrumb-divider-flipped)对其进行修改。我们默认使用 Sass 变量,因为它是自定义属性的后备。这样操作后,你就拥有了一个新的全局分隔符,并且任何时候都无需重新编译 CSS。

<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
  <ol class="breadcrumb">
    <li class="breadcrumb-item"><a href="#">Home</a></li>
    <li class="breadcrumb-item active" aria-current="page">Library</li>
  </ol>
</nav>

当通过 Sass 变量修改分隔符时,可以使用 Sass 中的 quote 函数(此函数用于生成字符串两侧的引号)。例如,使用 > 字符作为分隔符的话,你可以这样做:

$breadcrumb-divider: quote(">");

也可以使用 嵌入式 SVG 图标 作为分隔符。覆盖对应的自定义 CSS 属性或 Sass 变量即可。

<nav style="--bs-breadcrumb-divider: url(&#34;data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M2.5 0L1 1.5 3.5 4 1 6.5 2.5 8l4-4-4-4z' fill='currentColor'/%3E%3C/svg%3E&#34;);" aria-label="breadcrumb">
  <ol class="breadcrumb">
    <li class="breadcrumb-item"><a href="#">Home</a></li>
    <li class="breadcrumb-item active" aria-current="page">Library</li>
  </ol>
</nav>
$breadcrumb-divider: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M2.5 0L1 1.5 3.5 4 1 6.5 2.5 8l4-4-4-4z' fill='currentColor'/%3E%3C/svg%3E");

你还可以通过设置 --bs-breadcrumb-divider: ''; (为自定义 CSS 属性设置空字符串)或者 Sass 变量 $breadcrumb-divider: none; 来删除分隔符。

<nav style="--bs-breadcrumb-divider: '';" aria-label="breadcrumb">
  <ol class="breadcrumb">
    <li class="breadcrumb-item"><a href="#">Home</a></li>
    <li class="breadcrumb-item active" aria-current="page">Library</li>
  </ol>
</nav>
$breadcrumb-divider: none;

可访问性

由于面包屑导航(breadcrumb)组件提供了导航功能,因此,最好添加一个有意义的标签(例如 aria-label="breadcrumb")来描述 <nav> 元素中提供的导航的类型,并且为最后一个条目添加 aria-current="page" 以表示其代表的是当前页面。

有关更多信息,请参见 WAI-ARIA Authoring Practices for the breadcrumb pattern

Sass

变量

$breadcrumb-font-size:              null;
$breadcrumb-padding-y:              0;
$breadcrumb-padding-x:              0;
$breadcrumb-item-padding-x:         .5rem;
$breadcrumb-margin-bottom:          1rem;
$breadcrumb-bg:                     null;
$breadcrumb-divider-color:          $gray-600;
$breadcrumb-active-color:           $gray-600;
$breadcrumb-divider:                quote("/");
$breadcrumb-divider-flipped:        $breadcrumb-divider;
$breadcrumb-border-radius:          null;