Bootstrap 5及4.6+支持通过CSS变量--bs-breadcrumb-divider修改面包屑分隔符,如设置为">"或"›",需确保HTML结构正确(<nav aria-label="breadcrumb"><ol class="breadcrumb">),避免手动覆盖伪元素导致冲突。
bootstrap 5(及部分 bootstrap 4.6+)原生支持通过 css 自定义变量 --bs-breadcrumb-divider 替换默认的 / 分隔符,无需覆盖样式或写伪元素。这是最干净、最可维护的方式。
<nav> 外层或面包屑容器上直接加内联 style:style="--bs-breadcrumb-divider: '>';"
:root 或 .breadcrumb 中设置,例如::root { --bs-breadcrumb-divider: "›"; }(注意:值必须是字符串,带英文双引号)"→"、"•"、"╱",但避免使用未转义的空格或特殊 HTML 实体(应直接写字符).breadcrumb > li + li:before
老项目里有人会去重写 .breadcrumb > li + li:before 的 content,这在 Bootstrap 4 早期常见,但现在属于“绕路操作”——它不仅覆盖成本高,还会和新版本的变量逻辑冲突,且破坏语义化更新机制。
aria-current="page" 和语义结构,而不是视觉符号,所以改样式不影响可访问性,但乱改结构会再好看的箭头,也得建立在合法的 HTML 结构上。Bootstrap 面包屑不是随便套个 <div class="breadcrumb"> 就行。
<nav aria-label="breadcrumb"> 包裹<ol class="breadcrumb">(有序列表),不是 <ul> 或 <div>
<li class="breadcrumb-item">,当前页加 aria-current="page",不是 class="active"(后者是 Bootstrap 3 的写法,已废弃)<span> 替代 <a> 做当前页,也要确保它在 <li> 内,并带对的属性设了 "→" 却看到方框或问号?这不是 Bootstrap 的问题,而是字体或编码层面的缺失。
<meta charset="UTF-8">,否则 Unicode 箭头无法解析.breadcrumb { font-family: system-ui, "Segoe UI", sans-serif; }
> 或 »,它们兼容性极佳