css背景颜色随doctype消失

时间:2009-03-01 13:00:49

标签: html css doctype strict

我正在尝试在html页面中的几个不同元素上设置背景颜色,但每当我应用doctype声明时,颜色都会被忽略。其他款式似乎不受影响。我确定我是个白痴。

它发生在IE7,FF3和Chrome上。使用严格和过渡的html 4 Doctype。身体和Div背景受到影响。下面是一个最小的例子。如果你删除了Doctype级别,那么它就会呈现出所有它的光彩夺目的荣耀,只有doctype - 单调乏味的黑白。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <style>
        body{background-color:FF00FF;}
        .class1{background-color:00FFFF;}
    </style>
</head>
<body>
    <div class="class1">Some Text</div>
</body>
</html>
BTW - 我没有使用XHTML,因为我认为我曾经在酒吧里听到过一个比我自己更聪明的人之间的对话,他说你不应该声明XML,除非你的服务器上正确设置了mime类型。在我的廉价主机帐户上,我不能轻易做到这一点。

5 个答案:

答案 0 :(得分:8)

您忘记了颜色值中的#

body {
    background-color: #FF00FF;
}
.class1 {
    background-color: #00FFFF;
}

答案 1 :(得分:6)

忽略颜色的原因是声明不正确。在怪癖模式下,解释更加放松,尽管颜色不正确,但颜色仍被接受,但在符合标准的模式中,声明必须正确。

将FF00FF更改为#FF00FF,将00FFFF更改为#00FFFF。

#FF00FF也可以用#F0F的短格式写入,#00FFFF用#0FF写入。

答案 2 :(得分:1)

在CSS中,您可以使用RGB或Hex定义颜色。这就是你做的。但Hex-Colors的编写方式与#rrggbb类似。你错过了。 似乎在验证时因为设置了doctype,然后这种“几乎正确”的颜色定义无法正确解释。

答案 3 :(得分:1)

删除以下行

DOCTYPE html PUBLIC“ - // W3C // DTD HTML 4.01 Transitional // EN”“http://www.w3.org

然后它会好的,但我不知道为什么。

答案 4 :(得分:0)

你应该使用&lt; style type =“text / css”&gt;或者甚至更好,不要使用内联样式!

始终验证您的HTML代码here