css覆盖原因

Rod*_*Rod 0 html css

为什么第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>
Run Code Online (Sandbox Code Playgroud)

Bol*_*ock 6

bgcolor是表示HTML属性.它将始终被任何实际的CSS样式声明覆盖.

这在规范中提到:

UA可以选择在HTML源文档中表示表示属性.如果是这样,这些属性将被转换为具有等于0的特定CSS规则,并被视为在作者样式表的开头插入它们.

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