使用 BEM 命名约定,应该如何处理组件是基础组件的特殊化的情况?(我在这里使用 Nicholas Gallagher 的变体)。
因此,假设我有一组table
元素的默认样式和一个更专业的表,其类为DataTable
:
// Defaults
table {}
tr {}
th {}
td {}
// DataTable
.DataTable {}
.DataTable-header {}
.DataTable-header-row {}
.DataTable-header-cell {}
.DataTable-body {}
.DataTable-body-row {}
.DataTable-body-cell {}
我现在有一个专门化的表格,DataTable
对单元格进行了各种调整:
.SpecialTable {}
.SpecialTable-header {}
.SpecialTable-header-row {}
.SpecialTable-header-cell {}
.SpecialTable-header-alphaCell {}
.SpecialTable-header-betaCell {}
.SpecialTable-header-charlieCell {}
.SpecialTable-body {}
.SpecialTable-body-row {}
.SpecialTable-body-cell {}
.SpecialTable-body-alphaCell {}
.SpecialTable-body-betaCell {}
.SpecialTable-body-charlieCell {}
这意味着我的 SpecialTable 看起来像这样:
<table class="DataTable SpecialTable">
<theadclass="DataTable-header SpecialTable-header">
<tr class="DataTable-header-row SpecialTable-header-row">
<th class="DataTable-header-cell SpecialTable-header-cell SpecialTable-header-alphaCell"></th>
<th class="DataTable-header-cell SpecialTable-header-cell SpecialTable-header-betaCell"></th>
<th class="DataTable-header-cell SpecialTable-header-cell SpecialTable-header-betaCell"></th>
</tr>
</thead>
<tbody class="DataTable-body SpecialTable-body">
<tr class="DataTable-body-row SpecialTable-body-row">
<th class="DataTable-body-cell SpecialTable-body-cell SpecialTable-body-alphaCell"></th>
<th class="DataTable-body-cell SpecialTable-body-cell SpecialTable-row-betaCell"></th>
<th class="DataTable-body-cell SpecialTable-body-cell SpecialTable-row-betaCell"></th>
</tr>
</tbody>
</table>
这是对表格进行分类的正确方法吗?