Skip to main content Skip to docs navigation

面包屑导航(Breadcrumb)组件

面包屑导航是一种有层次结构的导航,它通过 CSS 自动在层次结构之间添加分隔符,并指示当前页面的位置。

示例

使用有序列表( <ol> 元素)或无序列表( <ul> 元素)及其列表项来创建最小样式需求的面包屑导航。 使用我们的实用程序根据需要添加其他的样式。

<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 - 和 $breadcrumb-divider-flipped 如果需要,为其 RTL 对应的翻转分隔符。 我们默认使用 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 进行修改时,需要 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;

无障碍

由于面包屑提供导航,因此最好添加一个有意义的标签,例如 aria-label="breadcrumb" 来描述 <nav> 元素,以及将 aria-current="page" 应用于集合的最后一项以指示它表示当前页面。

有关详细信息,请参阅 面包屑模式的 WAI-ARIA 创作实践

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;