2009-03-01 51 views
1

我試圖在html頁面的幾個不同元素上設置背景顏色,但是每當我應用doctype聲明時顏色就會被忽略。其他樣式似乎不受影響。我確信我是個白癡。css背景顏色隨着文檔類型消失

它發生在IE7,FF3和Chrome上。嚴格和過渡html 4文檔類型。身體和Div背景受到影響。下面是一個簡單的例子。如果你刪除Doctype delcaration,它就會呈現出所有的光彩奪目,只有文檔類型 - 乏味的黑色和白色。

<!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> 

順便說一句 - 我不使用XHTML因爲我認爲我曾經聽到的對話在酒吧要聰明得多的人比自己誰說,說除非MIME類型正確設置你不應該聲明XML之間你的服務器。在我的便宜的託管帳戶上,我無法輕鬆做到這樣的事情。

回答

8

您忘記了顏色值中的#

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

天才!(你,不是我!)。謝謝。 – 2009-03-01 13:07:34

6

顏色被忽略的原因是因爲聲明不正確。在怪癖模式下,解釋更爲寬鬆,儘管不正確,顏色仍然可以接受,但在符合標準的模式下,聲明必須是正確的。

將FF00FF改變爲#FF00FF和將00FFFF改變爲#00FFFF。

#FF00FF也可以寫成短格式#F0F和#00FFFF作爲#0FF。

1

在CSS中,您可以用RGB或十六進制定義顏色。這就是你所做的。但十六進制顏色寫爲#rrggbb。你錯過了。 似乎是因爲設置了文檔類型而導致驗證,那麼這種「幾乎正確」的顏色定義就沒有被正確解釋。

0

您應該allsoo使用< style type =「text/css」>或者更好,不要使用內聯樣式!

Allways驗證您的HTML code here

+0

這只是這個最小的例子,它是真實的外部樣式表。 – 2009-03-01 14:25:11

1

刪除以下行

DOCTYPE HTML PUBLIC 「 - // W3C // DTD HTML 4.01過渡// EN」「http://www.w3.org

那麼它會沒事的,但我不知道爲什麼