5

好的,这是一个简单的测试用例

我正在尝试的是,如果我们使用属性来设置元素的样式(我知道这是一个非常非常糟糕的主意,但我这样做是为了实验)

所以问题是 CSS 基本元素选择器样式是否比 HTML 属性更具体?

有点CSS - 1 / HTML - 0 <!-- Specificity -->

如果CSS not used, HTML - 1 <!-- Specificity -->

测试用例 HTML

<table border="1">
    <tr>
        <td>Hello 1</td>
        <td>Hello 2</td>
        <td>Hello 3</td>
    </tr>
</table>

CSS

table, table td {
    border: 0;
}

所以整体 CSS 比 HTML 的样式更具体?或者有什么我们可以用除了属性之外的style属性覆盖 CSS 的东西。

4

1 回答 1

8

来自CSS 2.1 规范

UA 可以选择尊重 HTML 源文档中的表示属性。如果是这样,这些属性将被转换为特定性等于 0 的相应 CSS 规则,并被视为插入到作者样式表的开头。因此,它们可能会被后续样式表规则覆盖。在过渡阶段,此策略将使样式属性更容易与样式表共存。

CSS Cascading and Inheritance Level 3中存在类似的语言


所以整体 CSS 比 HTML 的样式更具体?

是的。不要使用 HTML 进行样式设置。我们现在有 CSS。

或者有什么我们可以用除了 style 属性之外的属性覆盖 CSS

没有。style 属性只是将 CSS 应用于元素的一种方式。(就像使用 JavaScript 修改由 style 属性生成的 DOM 属性一样。)

于 2013-04-19T12:12:31.723 回答