虽然我使用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的 看起来“多余”时如何处理此类情况持开放态度。 '。
答案 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>