【发布时间】:2019-05-23 14:57:37
【问题描述】:
我正在寻找某种 CSS 选择器,它只会从表格中选择某些单元格,只有 有这两个特定的类,没有别的。这是一个更清晰的示例。
因此,在此表中,我想从行中选择单元格 A 和 D 进行样式设置,但选择它们的唯一可区分方法是它们没有除 .abc 和 .xyz 之外的任何类。所以基本上我需要排除任何具有任何其他类的单元格,即 .def、.ghi。
<tr>
<td class="abc xyz">A</td>
<td class="abc xyz def">B</td>
<td class="abc xyz ghi">C</td>
<td class="abc xyz">D</td>
</tr>
现在我知道我可以使用 not 选择器来解决它,但是这些类是从外部源注入到表中的,并且可以添加新类,我真的不想继续添加到不断增长的类列表中忽略。
td.abc.xyz:not(.def),
td.abc.xyz:not(.ghi) {
/* Style to apply */
}
因此,如果有人可以为我指出正确的方向,任何可以提供帮助的东西,将不胜感激。
【问题讨论】:
-
我建议虽然这在 CSS 中是可能的,但在 JavaScript 中可能更容易/更可靠。例如:
Array.from(document.querySelectorAll('.abc.xyz')).filter(elem=>elem.classList.length === 2);
标签: css css-selectors