html - BEM 是否会强制您创建不必要的元素?
问题描述
<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 的正确方法吗?
解决方案
通过“它不依赖于header
块”,我假设您的意思是您在其他地方重用了这种标志式结构。根据定义,它是一个块,因为它“不依赖于页面上的其他块/元素”。
因此,如果我对您的问题的解释是正确的,您应该能够给您的锚标签一个类别logo
和其中的图像logo__img
;包装div.logo
是不必要的。
要回答标题问题,不,BEM 不应该以任何方式真正强迫您使用太多 HTML。它主要是一种 CSS 方法,您可以在任何接受类名的 DOM 节点上定义块和元素。
推荐阅读
- kubernetes - Spinnaker K8S Manifest 基于部署,具有多个 Docker 映像触发器
- c - gcc -c 参数问题并设置输出文件
- php - 根据主题显示图像深色/浅色(例如 Outlook.com)
- java - 如何告诉 Java JAR 文件中的正确文件路径?
- google-sheets - 将值添加到查询结果中的一列
- python - 是否可以以打字稿样式运行异步 python 脚本
- vuetify.js - Vuetify v-data-table v-if 问题
- c++ - C++ 放置删除如何在内部工作(C++ 运行时)?如何克服它的局限?
- php - WooCommerce 中为 foreach() 提供的参数无效
- winapi - 检测窗口是否正在使用硬件加速的图形上下文