BEM命名能减少CSS样式扯皮,因其类名明确表达"是什么、在哪用、干什么",如header__logo--dark精准锁定作用域和上下文,避免复用冲突与逻辑覆盖。为什么BEM命名能减少CSS样式扯皮因为类名本身说了清楚"这是啥、在哪用、干啥的",不用翻源码或问同事。header__logo--dark比logo-dark或dark-logo更能锁定作用域和上下文。团队里新人改个按钮样式,看到button--primary就知道不能乱动button__icon的内边距------结构意图写在名字里了。常见错误现象:user-card被复用到订单页,结果头像圆角没了;active类在导航和标签页里各有一套颜色逻辑,合并时互相覆盖。模块名(Block)必须语义明确且唯一,比如search-form不叫form元素名(Element)用双下划线__连接,禁止嵌套,search-form__input不能写成search-form__wrapper__input修饰符(Modifier)用双短横--,只表达状态或外观变化,不包含布局逻辑,button--disabled可以,button--full-width不行BEM怎么跟CSS预处理器配合才不翻车用@extend或@mixin时容易绕开BEM约束,比如Sass里@extend .button导致非button元素意外获得按钮样式,破坏模块边界。使用场景:组件库封装、主题切换、响应式断点适配。立即学习"前端免费学习笔记(深入)";Sass中优先用%placeholder而非@extend,避免生成冗余选择器修饰符变量统一用button-modifiers这类命名,别用dark这种孤立词嵌套层级严格限制为1层:只允许.search-form { &__input {} &--compact {} },禁用&__input:focus这种穿透写法如何让BEM在React/Vue项目里不变成命名负担JSX或模板里写一长串className="card__header card__header--sticky"确实反人类,但硬切CSS-in-JS又丢掉BEM的可维护性。 唱鸭 音乐创作全流程的AI自动作曲工具,集 AI 辅助作词、AI 自动作曲、编曲、混音于一体
相关推荐
阿凡观察站11 小时前
2026年工程项目管理软件推荐:这5款主流产品值得关注逸Y 仙X11 小时前
文章二十一:ElasticSearch 词项查询与调度查询实战李李李勃谦11 小时前
鸿蒙PCBI 报表工具:连接数据库与可视化报表生成czlczl2002092512 小时前
MAX()和MIN()优化开源情报局12 小时前
79%的企业在用AI Agent,但只有2%规模化落地——问题出在哪?算法与双吉汉堡13 小时前
【Nanobot项目笔记】项目架构knight_9___13 小时前
LLM工具调用面试篇6用户39626910600313 小时前
asyncio + subprocess:Python异步调用外部命令踩坑实录消失的旧时光-194313 小时前
SQL 第一篇:CRUD 实战,从 user 表开始写接口AI砖家13 小时前
Claude Code Superpowers 安装使用指南:让 AI 编程从“业余”走向“工程化”