块元素修饰符-是否在没有“元素”的情况下使用BEM?

时间:2019-05-13 15:07:55

标签: html css bem

虽然我使用CSS(和其他CSS预处理器)已有一段时间了,但是对于遵循Block Element Modifier (BEM) convention时,我仍然没有完全的信心。

假设我们遵循以下特定的BEM格式:

block-name__element-name_modifier-name_modifier-value

我可以知道指定不带element-name的类是否可以接受?这意味着我们只有块,后面是修饰符。

这里是一个示例:

<div class="menu_light-theme">
  <!-- the other menu elements such as the buttons and icons -->
  <ul class="menu__list_light-theme>
    <li><a class="menu__list-element" href="">Home</a></li>
    <li><a class="menu__list-element" href="">About</a></li>
  </ul>
</div>

从上面的代码块可以看到,.menu_light-theme类充当菜单的“包装器”,并且类名仅包含 block 修饰符

我理解这是主观的,但是我想知道这是否符合BEM,当然,我对在BEM的 看起来“多余”时如何处理此类情况持开放态度。 '。

1 个答案:

答案 0 :(得分:1)

可以,它实际上在documentation中:

.button--state-success {...}

在您的示例中,我们可以这样做(不要忘了在修饰符上加上两个破折号):

<div class="menu--light-theme">
  <!-- the other menu elements such as the buttons and icons -->
  <ul class="menu__list--light-theme>
    <li><a class="menu__list-element" href="">Home</a></li>
    <li><a class="menu__list-element" href="">About</a></li>
  </ul>
</div>