使用BEM命名方法编写CSS时如何实现主题?

时间:2016-06-07 08:15:32

标签: html css bem

我在我正在处理的项目中使用BEM CSS命名约定。到目前为止所有的桃子都是桃子。但是我需要在同一个html页面上实现几个主题(意思是略有不同的设计)。写这个:

.name-of-theme .block1 {
    ...
}

.name-of-theme .block2 {
    ...
}

不会是BEM,但允许在body标签中添加一个修饰符。

写这个:

.block1--name-of-theme {
   ...
}

.block1--name-of-theme {
   ...
}

将是BEM,但也意味着在HTML中编写大量冗余代码,因为每个受影响的块都必须使用额外的CSS类进行修改。这也很难维持。

在没有编写冗余代码的情况下,是否存在兼容BEM的解决方法?

1 个答案:

答案 0 :(得分:1)

让我在bem.info上引用一段FAQ

  

嵌套适用于根据状态更改元素   一个块或其指定的主题