我正在使用BEM方法来编写html + css。有了这个语法:命名BEM子块
- 块:block_name
- 元素:block_name__element_name
- 修饰符:block_name__element_name - 修改
我感到困惑时,我有另一个块内的块。例如,在标题中,我希望标题是我可以引用的块,导航和徽标是块。我想将这些导航和徽标块引用为site_header内的块。但是,我会怎么写呢?链接块像block_name__sub_block_name似乎很长。
有没有人有他们会写这个例子的典型方式?
<div class="site_header__logo">
<a class="site_header__logo__link">
<img class="site_header__logo__image">
</a>
</div>
<nav class="site_header__main_nav">
<ul>
<li class="site_header__main_nav__item">
<a class="site_header__main_nav__link">Home</a>
</li>
<li class="site_header__main_nav__item">
<a class="site_header__main_nav__link">About Us</a>
</li>
<li class="site_header__main_nav__item">
<a class="site_header__main_nav__link">Contact Us</a>
</li>
</ul>
</nav>
<div class="site_header__phone">
<p class="site_header__phone__number">
555.555.5555
</p>
</div>
.site_header .logo是我正在寻找的。但是,这将如何转化为BEM造型?可以使用修饰符,例如.logo - site_header或它自己的名称.site_header_logo,还是应该像.site_header__logo一样链接? – jeremyhoover
其中三个使用修饰符如'.logo - site_header'。如果可以,请根据修饰符带来的样式差异选择修饰符名称。 “.site_header_logo”和“.site_header__logo”都暗示紧密耦合,这与BEM块的独立性质相反。 – katranci
谢谢!我现在正在更好地掌握BEM。 – jeremyhoover