CSS中BEM规范如何管理后台管理系统的面包屑导航_定义链接与分隔符

老伟吖_9945

老伟吖_9945

2026-04-09

343人浏览

原创

面包屑导航的bem结构应以breadcrumb为块,严格使用breadcrumb__list、breadcrumb__item、breadcrumb__link、breadcrumb__text、breadcrumb__separator等元素与修饰符;分隔符须用:not(:last-child)::after伪元素实现;当前页禁用改用;折叠时通过breadcrumb__item--collapsed修饰符控制,确保语义、可访问性与样式解耦。

css中bem规范如何管理后台管理系统的面包屑导航_定义链接与分隔符

面包屑导航的BEM结构怎么写才不混乱

后台系统里面包屑常被写成嵌套过深的 <nav></nav> 套 <ol></ol> 套 <li>,结果一改样式就牵连全局。BEM要求每个模块自包含,面包屑必须整体视为一个块(breadcrumb),内部元素严格按 breadcrumb__item、breadcrumb__link、breadcrumb__separator 划分,不能让 li 或 a 自己承担语义和样式双重责任。

正确结构示例:

<nav class="breadcrumb"><ol class="breadcrumb__list">
<li class="breadcrumb__item">
      <a href="/admin" class="breadcrumb__link">首页</a>
    </li>
    <li class="breadcrumb__item">
      <a href="/admin/users" class="breadcrumb__link">用户管理</a>
    </li>
    <li class="breadcrumb__item breadcrumb__item--current">
      <span class="breadcrumb__text">编辑用户</span>
    </li>
  </ol></nav>
  • breadcrumb__list 是必须的包裹层,避免直接给 ol 写样式(否则影响其他列表)
  • 当前页用 breadcrumb__text 而非 breadcrumb__link,语义更准;加修饰符 breadcrumb__item--current 控制状态,不靠伪类或 JS 动态加类
  • 分隔符不写死在 HTML 里(比如不用 > 或 / 字符),统一由 CSS 的 ::before 生成

分隔符用 CSS 伪元素还是字体图标

硬编码分隔符字符(如 <span class="breadcrumb__separator">/</span>)会导致中英文空格不一致、缩放失真、无法配色统一。BEM 推荐用伪元素控制,且只作用于非末项的 breadcrumb__item:

CSS婚礼策划服务机构宣传网站模板
CSS婚礼策划服务机构宣传网站模板

CSS婚礼策划服务机构宣传网站模板是一款适合提供婚礼策划和婚庆服务机构宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。

下载
.breadcrumb__item:not(:last-child)::after {
  content: "/";
  margin: 0 8px;
  color: #999;
}
  • 用 :not(:last-child) 比给每个分隔符单独加类更可靠,避免漏写或错位
  • 如果设计稿要求箭头图标(如 → 或 SVG),建议用 background-image 或内联 <svg></svg>,但 SVG 必须加 class="breadcrumb__separator" 并设 width/height,不能依赖父容器尺寸
  • 禁用 font-family: "iconfont" 方式——后台系统字体加载不稳定时,分隔符可能空白或显示为方块

链接状态与可访问性容易忽略的点

后台面包屑里的 breadcrumb__link 常被写成无 href 的空链接或 JS 绑定 click,这会破坏键盘导航和屏幕阅读器识别。所有链接必须真实可跳转,且当前页用 <span></span> 替代,不是禁用 <a></a>。

  • 禁用 pointer-events: none 或 tabindex="-1" 来“模拟”不可点击——这会让键盘用户卡住
  • 悬停/焦点样式必须显眼:breadcrumb__link:hover, .breadcrumb__link:focus 至少要有背景色或下划线变化,否则触控设备或低视力用户无法感知
  • 如果某级菜单是动态加载(如权限控制后隐藏),不要仅靠 CSS display: none 隐藏整个 breadcrumb__item,需同步从 DOM 移除或加 aria-hidden="true"

响应式折叠时如何保持 BEM 语义不崩

小屏下面包屑常折叠为「…」或下拉菜单,此时若直接用 JS 替换 HTML 结构(比如把中间几项塞进 <details></details>),BEM 类名就会断裂。正确做法是初始结构就预留折叠能力:



  • 折叠逻辑用 JS 控制 breadcrumb__item--collapsed 修饰符,CSS 只负责视觉表现,不干预结构
  • breadcrumb__toggle 必须有 aria-expanded 和 aria-controls,配合下拉内容的 id,否则屏幕阅读器读不出展开状态
  • 禁止用 visibility: hidden 隐藏中间项——它仍占据布局空间且可聚焦,应改用 display: none 或移除渲染

最麻烦的其实是分隔符在折叠后的对齐:当 breadcrumb__item--collapsed 出现时,它前一项的 ::after 伪元素要消失,得额外写一条规则:.breadcrumb__item--collapsed:before 设 content: none,不然会出现「首页 / … / 编辑用户」这种错误分隔。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关专题

更多
css
css

css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.15

4336

6

css居中
css居中

css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.27

957

5

css如何插入图片
css如何插入图片

cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.28

1818

6

css超出显示...
css超出显示...

在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

2023.08.01

3406

7

css字体颜色
css字体颜色

CSS中,字体颜色可以通过属性color来设置,用于控制文本的前景色,字体颜色在网页设计中起到很重要的作用,具有以下表现作用:1、提升可读性;2、强调重点信息;3、营造氛围和美感;4、用于呈现品牌标识或与品牌形象相符的风格。

2023.08.10

6805

11

什么是css
什么是css

CSS是层叠样式表(Cascading Style Sheets)的缩写,是一种用于描述网页(或其他基于 XML 的文档)样式与布局的标记语言,CSS的作用和意义如下:1、分离样式和内容;2、页面加载速度优化;3、实现响应式设计;4、确保整个网站的风格和样式保持统一。

2023.08.10

5791

7

css三角形怎么写
css三角形怎么写

CSS可以通过多种方式实现三角形形状,本专题为大家提供css三角形怎么写的相关教程,大家可以免费体验。

2023.08.21

1977

9

css设置文字颜色
css设置文字颜色

CSS(层叠样式表)可以用于设置文字颜色,这样做有以下好处和优势:1、增加网页的可视化效果;2、突出显示某些重要的信息或关键字;3、增强品牌识别度;4、提高网页的可访问性;5、引起不同的情感共鸣。

2023.08.22

2751

5

css禁止点击事件
css禁止点击事件

实现css禁止点击事件的方法有使用CSS的pointer-events属性和使用JavaScript禁用点击事件。本专题为大家提供点击事件相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

2393

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 5.8万人学习

CSS教程
CSS教程

共754课时 | 96.2万人学习