<header>
<a href="#"><img src="kitty.jpg" /></a>
...
</header>
例如,我把它放在标题中,它不依赖于header
块。为了使其对BEM友好,我倾向于这样做:
<header>
<div class="logo">
<a href="#" class="logo__link"><img src="kitty.jpg" class="logo__img" /></a>
</div>
...
</header>
这是接近BEM的正确方法吗?
答案 0 :(得分:3)
通过“它不依赖于header
块”,我认为您的意思是在其他地方重用了这种徽标式结构。因此,根据定义,它是一个块,因为它有"no dependency on other blocks/elements on a page"。
因此,如果我对您的问题的解释是正确的,则您应该可以为锚标签指定logo
类,并为logo__img
中的图像;包装器div.logo
是不必要的。
要回答标题问题,不,BEM不应以任何方式强制使用太多HTML。它主要是一种CSS方法,您可以在任何接受类名称的DOM节点上定义块和元素。