我正在编写一堆 PHP 类,它们将用于创建 Wordpress 插件,但也可以在任何其他环境中使用。在自己测试了我的脚本之后,一切似乎都很好,但是当我为它创建一个 WP 插件时,我已经预见到了 CSS 冲突。我最初计划使用特异性来解决这些问题,但并不总是能够做到。这是在默认的 WP 主题中:
#content tr td {
border-top: 1px solid #E7E7E7;
padding: 6px 24px;
}
如果我尝试将 td 指定为没有填充,除非我将 ID 添加到我的表而不是类,否则它将不起作用。我见过一些流行的插件,它们在每一个 CSS 属性上都实现了 !important 规则,而不是使用 ID 来实现特定性。哪个最好?我知道 !important 规则应该谨慎使用,但是在我的表中添加一个 ID 似乎违背了语义,因为这个表的多个实例具有相同的 ID:
文档语言的 ID 属性允许作者为文档树中的一个元素实例分配一个标识符。
http://www.w3.org/TR/CSS2/selector.html#id-selectors
编辑: 另一种选择也可能是将所有内容包装在带有 ID 的 div 中,但如果存在规则#content #main td 或类似规则,它仍将支配我的#someid td。此外,如下所述,让两个元素共享同一个 ID 是无效的,尽管它可能“工作”。