CSS BEM 命名规范简介(推荐)

本文将介绍BEM命名规范,这是一种命名约定,有助于创建易于维护和可重用的CSS代码。

## 1. 什么是BEM?

BEM是Block(Element)Modifier的缩写,是一种CSS命名约定,旨在帮助开发人员编写更好的CSS代码。它的核心是尽可能减少选择器的嵌套层次,使代码更易于阅读和维护。

### 1.1 Block

Block是构成页面的块级元素。例如,header、nav、footer等。

### 1.2 Element

Element是一个Block的一部分,它构成了一个Block的内部。例如,button、menu-item、title等。

### 1.3 Modifier

Modifier用于改变Block或Element的状态或外观。例如,active、checked、disabled等。

## 2. BEM命名规范

### 2.1 Block命名

Block命名应该简洁明了,使用小写字母和连字符-。例如:

.header {}

.footer {}

.menu {}

### 2.2 Element命名

Element命名应该以Block命名为前缀,用连字符-连接,使用小写字母。例如:

.menu-item {}

.menu-title {}

.header-logo {}

### 2.3 Modifier命名

Modifier命名应该以Block或Element命名为前缀,用连字符-连接,使用小写字母。例如:

.menu-item--active {}

.header--fixed {}

.menu-title--large {}

### 2.4 命名实例

下面是一个例子,展示了如何使用BEM命名规范:

/* Block */

.welcome {}

/* Element */

.welcome-title {}

.welcome-text {}

/* Modifier */

.welcome-text--large {}

.welcome--dark {}

## 3. 为什么使用BEM?

BEM的优点是明显的:

### 3.1 更好的可读性

BEM采用简单的命名规范,易于阅读和理解。每个选择器都具有清晰的含义,使代码更易于维护和调试。

### 3.2 更好的重用性

BEM的命名规范使代码更易于重用。如果需要更改样式,只需更改相应的Block或Element的CSS,而不必担心它们如何被用于不同的上下文中。

### 3.3 更少的选择器嵌套

BEM的核心是减少选择器的嵌套层次,这使得CSS代码更加简洁和易于维护。通过避免选择器嵌套,可以减少CSS文件的大小,加快页面的加载速度。

## 4. 总结

BEM命名规范是一种CSS命名约定,旨在创建易于维护和可重用的CSS代码。它的核心是减少选择器的嵌套层次,使代码更易于阅读和理解。BEM的优点包括更好的可读性、更好的重用性和更少的选择器嵌套。