0

为什么第 2 行“测试 2”会被橙色覆盖?

<head runat="server">
    <title></title>
    <style type="text/css">
        td
        {
            color: white;
        }
        .testclass td
        {
            background-color: Orange;
        }
    </style>
    <link href="StyleSheet.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table>
            <tr class="testclass">
                <td style="background-color: Blue">
                    Test 1
                </td>
            </tr>
            <tr class="testclass">
                <td bgcolor="fushcia">
                    Test 2
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>
4

3 回答 3

6

bgcolor是一个表现性的 HTML 属性。它总是会被任何实际的 CSS 样式声明覆盖。

这在规范中提到:

UA 可以选择尊重 HTML 源文档中的表示属性。如果是这样,这些属性将被转换为特定性等于 0 的相应 CSS 规则,并被视为插入到作者样式表的开头。

*用简单的英语来说,这意味着表示属性几乎没有意义,并且比作者样式表中的规则中的样式(也具有零特异性)更脆弱。

于 2012-08-06T19:16:51.550 回答
1

Bgcolor 自 HTML 4.01 起已弃用,因此您不应使用它,请尝试使用 background: 或 background-color:

于 2012-08-06T19:16:40.940 回答
1

我相信 CSS 样式优先于 HTML 标记。

于 2012-08-06T19:17:11.757 回答