推荐用包裹面包屑,每层用+(非当前页)或/(当前页),添加aria-label增强无障碍,分隔符用CSS伪元素实现,响应式可截断中间层级。

用 HTML 列表标签制作面包屑导航,推荐使用无序列表 <ul></ul> 包裹,每个层级用 <li> 表示,配合语义化链接 <a></a> 和当前页用 <span></span>(或 <strong></strong>)区分。结构清晰、利于 SEO 和屏幕阅读器识别。
基础结构:用
面包屑本质是层级路径,<ul></ul> 天然表达“一组有序/无序的项目”,即使视觉上是横向排列,语义上仍表示导航路径序列。
- 首页链接写成
<a href="/">首页</a> - 中间层级都用
<a></a>,指向对应分类或列表页 - 当前页不用超链接,改用
<span>产品详情</span>或<strong>产品详情</strong>,避免跳转且表明终点 - 用 CSS 控制
display: flex或inline-block实现横向布局,不依赖 HTML 标签顺序改变
语义增强:添加 aria-label 和 listitem 角色(可选但推荐)
为提升无障碍体验,可在 <ul></ul> 上加 aria-label="面包屑导航",并确保每个 <li> 是标准列表项(现代浏览器默认已支持,无需额外加 role="listitem")。
例如:
立即学习“前端免费学习笔记(深入)”;
分隔符处理:用 CSS 伪元素更干净
避免在 HTML 中硬写 > 或 / 字符,用 CSS 的 ::after 统一添加分隔符,方便维护和本地化。
- 给除最后一个
<li>外的所有项加::after { content: "›"; margin: 0 8px; } - 若需中英文适配,可用
content: "/";或通过 JS 按语言切换 - 图标分隔(如
→)也建议走 CSS,而非插入→
响应式与简化:移动端可折叠或省略中间层级
长路径(如 首页 › 分类 › 子类 › 子子类 › 当前页)在小屏易换行拥挤。可通过 CSS 或 JS 动态截断,例如只显示首尾两级 + “…”。
- 纯 CSS 方案较难精准控制截断逻辑,适合固定层级数场景
- 更稳妥的做法是后端或前端模板根据深度判断是否渲染中间项
- 保留首项(首页)、末项(当前页),中间用
<span aria-hidden="true">…</span>占位



















