CSS BEM,修饰符的字符是什么..?

Ste*_*ast 6 css bem

我不确定哪个是官方网站,我找到了getbem.comen.bem.info

一种建议使用--修饰符(Naming):

CSS 类由块或元素的名称加上两个破折号组成。

另一个_用于修饰符(修饰符名称):

修饰符名称由单个下划线 (_) 分隔。

我知道我可以使用任何一个,而且保持一致确实很重要,但我喜欢尽可能尝试使用官方规范。

  • 哪个是官方网站..?
  • 我真的应该使用--还是_用于修饰符..?

zzz*_*Bov 5

哪个是官方网站?

BEM 最初是Yandex 的一套非正式指南,后来他们在en.bem.info 上正式化,因此在这方面是 BEM 的“规范”版本。en.bem.info

话虽如此,BEM有很多种风格,我自己使用了一种主要受Harry RobertsNicolas Gallagher影响的变体。

这让我想到你的下一个问题:

我真的应该使用--还是_用于修饰符?

对此,我的回答是:您的用法应该保持一致,但是您可以使用您想要的任何字符来用于您​​正在使用的 BEM 变体。只是要确保每个人都在你的团队了解变体你对标准化。

这类似于使用制表符 vs 两个空格 vs 四个空格(vs hotdogs)。除了成为人们倾向于具有非理性强烈个人偏好的东西之外,它实际上并没有产生任何影响。

为了帮助规范化人们,我使用了块、元素和修饰符的示例语法,显示了变体规范化的内容:

我以前主要使用:

the-block__the-element--the-modifier
Run Code Online (Sandbox Code Playgroud)

但我现在更喜欢:

TheBlock_theElement-theModifier
Run Code Online (Sandbox Code Playgroud)

因为它的简洁。

  • 我们甚至有关于 en.bem.info 的特别部分:https://en.bem.info/methodology/naming-convention/#which-style-to-choose ;) (2认同)