BEM(Block, Element, Modifier)是一种CSS命名约定,用于创建可重用和可扩展的样式。
在BEM中,块(Block)是一个独立的组件或模块,可以在页面上多次重复使用。块具有一个名称,该名称应该简单且描述性。块的类名应以该名称开始。
元素(Element)是块的一部分,并且没有独立的含义。元素的类名应以块的名称作为前缀,用两个下划线(__)连接元素名称。
修饰符(Modifier)用于修改块或元素的外观或行为。修饰符的类名应以块或元素的名称作为前缀,用一个连字符(-)连接修饰符名称。
以下是一个使用BEM命名约定的示例代码:
Element
Element with Modifier
.block {
background-color: #f1f1f1;
padding: 10px;
}
.block__element {
margin-bottom: 5px;
}
.block__element--modifier {
font-weight: bold;
}
在上面的示例中,.block
是一个块,.block__element
是一个元素。.block__element--modifier
是一个修饰符,用于修改.block__element
的外观。
使用BEM命名约定可以使CSS代码更具可读性和可维护性,因为块、元素和修饰符的命名具有一致性和结构性。同时,它还可以避免样式冲突和覆盖问题,因为每个块和元素都有自己独立的类名。