当前位置:首页 > AI技术 > 正文内容

如何确保多人协作时类名不重复 通过BEM规范约束命名空间最佳实践|Duuu笔记

admin1周前 (03-31)AI技术15

BEM通过块名+元素名+修饰符的三段式命名和对应文件结构强制约束类名,避免全局样式冲突;它不自动隔离但可读可控,需配合代码审查落地。

为什么直接用

.button

会冲突

多人协作时,

.button

这种泛化类名大概率被不同模块重复定义——A组写了

.button { color: red; }

,B组后来加了个

.button { padding: 8px; }

,结果样式互相覆盖,谁的 CSS 后加载谁赢。这不是浏览器 bug,是 CSS 全局作用域的天然特性。

关键不是“能不能避免”,而是“不加约束就必然发生”。哪怕团队约定命名前缀,时间一长也会有人漏写、缩写不一致(

btn

/

ui-btn

/

commonButton

),最终退化成拼运气。

BEM 的三段式命名怎么落地到文件结构

BEM 要求类名形如

block__element--modifier

,但光改名字没用,得让文件组织方式强制对齐。比如一个搜索框组件:

search-form/

目录下放所有相关文件

CSS 文件里只出现

.search-form

.search-form__input

.search-form--compact

JS 中操作 DOM 也只认这些类名:

document.querySelector('.search-form__submit')

重点:目录名 = Block 名,所有子元素和修饰符都从这个根出发。一旦发现某处用了

.input

.btn

,就是违反约定,立刻能定位到是谁绕过了规范。

(深入)

”;

遇到嵌套组件时 BEM 容易崩在哪

常见错误是把嵌套关系硬塞进类名,比如

.header__nav__item

.card__content__title

。BEM 明确反对这种“路径式”写法——

__

只表示直属子元素,不表示 DOM 深度。

Action Figure AI

借助Action Figure AI的先进技术,瞬间将照片转化为定制动作人偶。

下载

正确做法是让每个 Block 自洽:

.card

内部如果有个标题,就叫

.card__title

,不管它实际在

还是

如果标题本身是个独立组件(比如带图标+文字的复合标题),那就抽成新 Block:

.title-block

,在

.card

里用

...

否则,一旦 DOM 结构微调(比如加一层 wrapper),类名就得全改,维护成本飙升。

要不要用 CSS Modules 或 scoped CSS 替代 BEM

可以,但代价是割裂。CSS Modules 生成哈希类名(

SearchForm_input__aBc12

)确实杜绝冲突,但它让开发者失去对类名的控制权——调试时看到的类名和源码对不上;第三方库或 SSR 渲染可能无法注入对应类名;想用 JS 动态切换状态(

el.classList.add('is-loading')

)还得靠

classNames

或额外映射。

BEM 是人可读、可预测、可调试的折中方案。它不解决“自动隔离”,而是用清晰规则把冲突风险压到最低。真要上 CSS-in-JS 或 scoped,建议只在新项目小范围试水,老项目改用 BEM 更平滑。

最常被忽略的一点:BEM 不是写完就算,得配合代码审查卡住

class="xxx"

里的非法字符串。没这道门禁,再好的规范三个月就形同虚设。

相关文章

使用 ESP

针对该分类问题,我们使用了 Kaggle 手势识别数据集 中的一个开源数据集。原始数据集包括 10 个类别,我们只使用了其中 6 个。这些类别更容易识别,且日常生活中更有用,如...

神经网络分类总结

从网络性能角度可分为连续型与离散型网络、确定性与随机性网络。 从网络结构角度可为前向网络与反馈网络。 从学习方式角度可分为有导师学习网络和无导师学习网络。 按连续突触性...

一文讲清神经网络、BP神经网络、深度学习的关系

人工神经网络中的顶级代表。往往说《神经网络》就是指《BP神经网络》。 大家研究着各种神经网络,研究得不亦乐乎, 来了两个家伙Romelhart 和Mcclelland,...

什么是人工智能 ?

您可以使用 ML 训练 AI,使其精确、快速地执行任务。这可以通过自动化员工感到吃力或厌烦的业务部分来提高运营效率。同样,您可以使用 AI 自动化来腾出员工资源,用于更复杂和更具创造性的工作。...

AI核心技巧:如何重置openclaw硬件设置 openclaw恢复出厂设置操作方法【操作】深度解析|Duuu笔记

重置 OpenClaw 配置有四种方法:一、交互式向导重置(openclaw onboard --reset);二、指定作用域的命令行重置(如--reset-scope config);三、手动删除~...

AI实战详解:Perplexity 怎么做市场调研 Perplexity 市场分析实操教程【商业】最佳实践|Duuu笔记

掌握Perplexity AI市场调研需五步:一、结构化提问嵌入地域/时间/主体/指标四要素;二、限定PDF等原始信源提升可信度;三、分步提问生成制表符分隔文本以自动导入Excel;四、启用Pro S...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。