返回

BEM 命名规范:清晰、统一的 CSS 世界

前端

BEM 是一种前端 CSS 命名规范,由 Yandex 团队提出,是一种简单又非常有用的命名约定。它使您的 CSS 代码更易读、易理解、更容易协作,更容易控制,更加健壮和明确,而且更加严密。

BEM 是块(block)、元素(element)、修饰符(modifier)的简写。块是构成用户界面(UI)的基本构建块,元素是块的组成部分,修饰符是用来改变块或元素外观的属性。

块是构成用户界面(UI)的基本构建块,通常由一个或多个元素组成。块是一个独立的单元,可以单独使用,也可以与其他块组合使用。例如,一个按钮就是一个块,它可以包含一个文本元素和一个图标元素。

元素

元素是块的组成部分,通常是块的一个子元素。元素通常用于为块提供特定的功能或外观。例如,一个按钮的文本元素可以用于显示按钮的文本,一个按钮的图标元素可以用于显示按钮的图标。

修饰符

修饰符是用来改变块或元素外观的属性。修饰符通常以一个连字符开头,后跟一个或多个单词。例如,一个按钮可以有不同的状态,如正常状态、禁用状态和悬停状态。这些状态可以用修饰符来表示,如 .button--normal.button--disabled.button--hover

BEM 命名规范的优点

BEM 命名规范有很多优点,包括:

  • 可读性: BEM 命名规范使您的 CSS 代码更易读、易理解。这是因为 BEM 命名规范使用语义化的名称,这些名称清楚地了块、元素和修饰符的作用。
  • 可维护性: BEM 命名规范使您的 CSS 代码更易于维护。这是因为 BEM 命名规范使您的 CSS 代码更具模块化,您可以轻松地添加、删除或修改块、元素和修饰符。
  • 可协作性: BEM 命名规范使您的 CSS 代码更易于协作。这是因为 BEM 命名规范使用一致的命名约定,这使得团队成员可以轻松地理解和修改彼此的代码。
  • 可扩展性: BEM 命名规范使您的 CSS 代码更具可扩展性。这是因为 BEM 命名规范使您的 CSS 代码更具模块化,您可以轻松地添加新的块、元素和修饰符。

BEM 命名规范的最佳实践

以下是一些使用 BEM 命名规范的最佳实践:

  • 使用语义化的名称: 为块、元素和修饰符使用语义化的名称。这将使您的 CSS 代码更易于理解和维护。
  • 保持一致性: 使用一致的命名约定。这将使您的 CSS 代码更易于阅读和理解。
  • 使用前缀: 为您的块、元素和修饰符使用前缀。这将防止与其他 CSS 规则冲突。
  • 使用类名: 为您的块、元素和修饰符使用类名。这将使您的 CSS 代码更具可维护性和可扩展性。

结语

BEM 命名规范是一种简单又非常有用的命名约定。它可以使您的 CSS 代码更易读、易理解、更容易协作、更容易控制,更加健壮和明确,而且更加严密。如果您正在寻找一种方法来提高您的 CSS 代码的质量,那么 BEM 命名规范是一个很好的选择。