前段時間我遇到了一個'問題',我從來沒有深究過。希望有人能夠照亮它。當我將DOCTYPE從嚴格更改爲過渡時,會導致某些瀏覽器(Chrome,Opera和Safari)呈現不同的頁面。我知道這種情況的一般原因是觸發了怪異模式,但根據w3c驗證程序驗證這兩個文件的XHTML和CSS都是有效的。瀏覽器渲染嚴格/過渡DOCTYPE之間的區別
我只能假設這些瀏覽器爲兩個DOCTYPE使用不同的內部樣式表,但沒有真正的想法爲什麼他們會這樣做。我只是希望有人能證實爲什麼會發生這種情況。
可以看到的差異是「標題圖像」底部和菜單欄邊框之間的空白處。在前面提到的瀏覽器中,當使用過渡性DOCTYPE時,兩者之間沒有差距,但是在嚴格使用時(在IE和FF中,兩者都存在差距)。我最終發現,在img標籤中添加display:block
可以阻止所有情況下出現的間隙(這是我的目標)。
transitional example, strict example
關於空白的有趣點。我刪除了這兩個文件中標籤之間的所有空格,這使得FF和IE與其他瀏覽器保持一致。 – 2010-09-20 10:18:28