2011-02-02 70 views
5

我在度假時沒有訪問我的好朋友Internet Explorer,我扔了一個非常完整的Web應用程序。當我回到家時,我很驚訝並鼓勵我看到我的網站在IE中工作......直到我投入任何有效的文檔類型。我知道把瀏覽器引入怪癖模式並不是最好的做法,或者它不會被稱爲怪癖模式,但我想我的問題是......具有「怪癖模式」網站的實際後果是什麼?是否有必要或者甚至是值得去苦苦掙扎,糾正我還沒有意識到的問題,或者我可以保持原樣,運行跨瀏覽器?謝謝。是怪癖模式合法嗎?

回答

7

如果您的網站在標準模式下呈現錯誤,但在怪異模式下正確,則可能是錯誤的。一些當前的瀏覽器甚至可以在標準模式下修復您的錯誤,但您不知道未來的瀏覽器將如何處理它。在標準模式下,您可以絕對確定在現代瀏覽器中看起來不錯的有效網站會正確顯示。

2

聲明一個合適的文檔類型在W3驗證HTML驗證技術上是必需的;然而,很多人離開他們的代碼,使瀏覽器改爲使用Quirks模式。我已經做了很多次了,通常情況下都不錯。但是,您冒着瀏覽器無法正確解釋代碼的風險。

換句話說,您所說的跨瀏覽器功能可能很容易在沒有有效的文檔類型聲明的情況下分解爲跨瀏覽器的地獄。

答案,這取決於您的網站需要多強大。

1

怪癖模式通常是瀏覽器嘗試修復錯誤以便正確呈現,但重要的是要記住,如果您的站點呈現符合標準的模式,它可能會使未來的瀏覽器呈現良好狀態(至少暫時)。

2

與怪癖模式相比,在無怪異模式下,瀏覽器更具互操作性,即彼此具有相同的行爲。無怪癖模式是大多數Web標準人員和瀏覽器開發人員關心和考慮和測試的模式。所以你很可能會在怪異模式下遇到瀏覽器之間的差異。

例如,在怪癖模式下,body填充WebKit/Blink中的視口,但不在Gecko中(我對Edge沒有把握)。在no-quirks模式下,所有瀏覽器中的高度body都一樣。

(有一個反例,不過,其中,瀏覽器在怪異模式同意而不是在無特殊模式:body作爲「視口滾動元件」爲scrollTop等)

IE的某些版本(8和9?)故意在他們的怪異模式中具有較少的特徵(例如canvas元素)。所以如果你關心IE並希望能夠使用IE實際支持的功能,那麼就不要使用怪癖模式,那麼這就是不使用怪異模式的另一個原因。最後,也許很明顯,你很可能會遇到更奇怪的行爲,就像color和其他一些不會繼承table元素的怪異行爲,即上下邊距摺疊更多,ID和類不區分大小寫,等等。