CSS之BEM命名规范

CSS中的BEM(Block, Element, Modifier)命名规范是一种组件化的设计方式,由Yandex团队提出,旨在提高代码的可维护性和团队协作效率。其主要目的是通过将界面分解为独立的块,避免命名混乱和代码冗余,确保一致性。在项目开发中,新手常会遇到命名随意导致的识别和一致性问题。BEM通过明确的block(块)、ele...
CSS之BEM命名规范
CSS中的BEM(Block, Element, Modifier)命名规范是一种组件化的设计方式,由Yandex团队提出,旨在提高代码的可维护性和团队协作效率。其主要目的是通过将界面分解为独立的块,避免命名混乱和代码冗余,确保一致性。

在项目开发中,新手常会遇到命名随意导致的识别和一致性问题。BEM通过明确的block(块)、element(元素)和modifier(修饰符)来命名,如block__element表示块的后代,block--modifier表示块的不同状态。这样,每个组件都有清晰的身份,有助于防止样式污染和提高代码复用性。

块(Block)是功能独立的组件,如网页上的一个独立部分。每个块的名称必须唯一,如头(head)表示页面顶部。块应保持独立,不涉及外部样式,确保其移动或重用时不会影响整体布局。

元素(Element)是块的组成部分,如search-form中的input和button。元素名称描述其功能,而不是状态,避免嵌套过深。例如,可以写成.search-form__input和.search-form__button。

修饰符(Modifier)用于调整块或元素的特定状态,如按钮的大小、颜色等。但必须与块或元素结合使用,如.btn--error用于表示错误状态的按钮。

在何时使用BEM,应根据模块关联性进行判断。对于公共样式,如字体大小,BEM可能不是最佳选择。而在需要明确关联性和低耦合的样式调整时,如表单布局,BEM提供了清晰的命名方式和混合拆分样式的能力。

尽管BEM提倡低嵌套,但在需要通过块状态影响内部元素时,适度的嵌套是允许的。遵循开放封闭原则,意味着扩展(通过修饰符)而非修改(基础样式)是BEM的最佳实践。2024-08-08
mengvlog 阅读 11 次 更新于 2025-06-20 01:04:37 我来答关注问题0
  •  翡希信息咨询 CSS之BEM命名规范

    CSS中的BEM命名规范是一种组件化的设计方式,旨在提高代码的可维护性和团队协作效率。以下是关于BEM命名规范的详细解释:1. 块 定义:块是功能独立的组件,如网页上的一个独立部分。 命名规则:每个块的名称必须唯一,通常由两个或更多单词组成,单词之间通过短横线连接,如.head表示页面顶部。 特性:块...

  •  文暄生活科普 BEM命名规范

    CSS的命名规范,亦称为BEM规范,旨在结束混乱的命名方式,实现一个语义化的CSS命名方式。BEM由三个单词的首字母缩写组成:Block(块)代表更高层次的抽象或组件,Element(元素)是Block的后代,以及Modifier(修饰)代表不同状态的修饰符。命名方法:通过BEM的命名规范,我们可以实现一个清晰的描述。从上面...

  •  翡希信息咨询 在Vue的CSS中,我为何放弃scoped和module,而选择BEM命名法作为前端CSS规范

    综上所述,选择BEM命名法作为前端CSS规范,能够更有效地避免样式污染,形成统一的命名规范,提升代码质量和编码效率,同时也有助于项目管理和团队协作。

  • 使用BEM命名规范,CSS代码的组织如块(Block)、元素(Element)和修饰器(Modifier)的组合,使得HTML选择器结构清晰,便于维护,但可能因名字冗长而稍显繁琐。BEM规则中,块-元素间用双下划线 '__' 分隔,块-修饰器或元素-修饰器用单下划线 '_',单词间用中划线 '-' 连接。每个BEM选择器应保持单一层次...

  •  文暄生活科普 在Vue的CSS中,我为何放弃scoped和module,而选择BEM命名法作为前端CSS规范

    理解BEM:由Block、Element、Modifier组成,类名结构清晰。BEM优点显著,但类名较长。BEM简洁、易掌握,实用于项目,与主流前端框架保持一致。scoped和module解决部分问题,但过度依赖导致类名单一,脱离Vue后问题凸显。选择BEM,避免样式污染,形成规范,有益项目和职业生涯。坚定BEM思想,形成命名规范,确保...

檬味博客在线解答立即免费咨询

CSS相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部