【发布时间】:2017-03-14 23:25:00
【问题描述】:
我正在尝试围绕 CSS 中的 BEM 命名约定进行思考,但对于某些部分我觉得有点混乱。
在我的例子中,我的 HTML(大致上)如下所示:
<div class="wrapper">
<img src="images/img.png">
<span class="header">Heading</span>
<table>
<tbody>
<tr>
<td class="itemInfo">
<span class="item">Item</span>
<span class="itemDetails">Item Details</span>
</td>
<td class="itemDate">01/01/1980</td>
</tr>
</tbody>
</table>
</div>
在我的 CSS 中,我为 .wrapper、.header、.item、.itemInfo、.itemDetails 和 .itemDate 类定义了样式。将这些转换为 BEM 应该很简单。
但是,我的问题与我的 HTML 中的其他一些标签有关:
1) 如何处理IMG标签?它在我的 CSS 文件中定义了样式:
img {
style definition 1;
style definition 2;
..
}
我是否应该通过在我的 HTML 文件中为图像标签提供一个具有 BEM 约定的 CSS 类并在我的 CSS 中也定义这个相同的类来对 HTML 和 CSS 文件中的这个元素进行 BEM?
2) 在我的示例中,如何在 BEM 上下文中理解 TABLE 标记?换句话说,TABLE 和 TD 选择器在我的 CSS 文件中有自己的样式定义(与 IMG 标记相同)。我是否也应该像对待 IMG 标签(带/不带 BEM)一样对待这些标签?
【问题讨论】:
标签: bem