BEM:方块修饰符会影响所有元素-最佳做法?

时间:2018-06-22 13:00:07

标签: css bem

如果修饰符影响块的所有元素,那么最佳实践是什么?

在我当前的项目中,我有一个标题。该标题更改为位置:如果用户滚动则固定。

标题中有主导航,徽标,语言切换器和电话链接:

<header class="header">
  <div class="header__logo">...</div>
  <nav class="nav nav_main">...</nav>
  <nav class="nav nav_lang-switch">...</nav>
  <div class="header__phone-link"></div>
</header>

滚动时,标题获得修饰符 header_fixed

<header class="header header_fixed">
  <div class="header__logo">...</div>
  <nav class="nav nav_main">...</nav>
  <nav class="nav nav_lang-switch">...</nav>
  <div class="header__phone-link"></div>
</header>

如果标题固定,标题看起来将完全不同:颜色更改,主导航变为汉堡包图标导航,语言开关的图标变小等等。

现在我可以在CSS中使用嵌套方式:

.header_fixed .nav_main {...}
.header_fixed .lang-switch__icon {...}
.header_fixed .header__phone-link {...}
...

或者每个更改的块或元素都可以拥有自己的修饰符类。

您对此有何看法?

关于, 马库斯

1 个答案:

答案 0 :(得分:2)