2009-11-08 127 views

回答

28

你可以閱讀這個鏈接 :

http://en.wikipedia.org/wiki/Quirks_mode

http://www.quirksmode.org/css/quirksmode.html

http://www.cs.tut.fi/~jkorpela/quirks-mode.html

現代瀏覽器一般都儘量 根據 W3C推薦渲染HTML內容。但是, 提供了與舊版網頁的兼容性,並提供了額外的「直觀」功能,所有 瀏覽器都支持替代方案 「怪癖模式」。

怪癖模式不是,但是, 標準。 在不同瀏覽器中怪癖模式的任何頁面的渲染可能與 不同。只要有可能, 最好遵守W3C標準 ,並儘量避免取決於任何過去或現在的瀏覽器怪癖。

一般來說,怪癖模式上 轉身的時候沒有正確的DOCTYPE 聲明,關閉時,有 是一個DOCTYPE定義。但是, 無效的HTML - 相對於 所選的DOCTYPE - 也會導致 瀏覽器切換到怪癖模式。在不同的

更多信息怪癖在不同的瀏覽器模式可以 在QuirksMode.org找到

+0

此引用材料來自哪裏?我無法在您包含的任何鏈接中找到它。 – Quentin 2013-06-26 09:11:41

+4

即使使用觸發Doctype的有效和標準模式,您是否可以提供任何證據證明無效HTML可觸發怪異模式?這不是我曾經遇到過的。 – Quentin 2013-06-26 09:12:29

9

怪癖模式意味着你的頁面沒有聲明,文檔類型是在最高層定義的文件類型的運行一個頁面,它表示瀏覽器應該如何讀取HTML。這是StackOverflows文檔類型:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 

w3.org指定的Web標準和文檔類型,因爲堆棧溢出使用該文檔類型,必須堅持這一DOCTYPE的specification

這是HTML 4.01嚴格DTD,這 排除呈現屬性表示W3C期望逐步 出作爲支持樣式表 成熟 和元素。作者應儘可能使用嚴​​格的 DTD,但在支持 演示文稿屬性和元素時需要使用 Transitional DTD。

5

在過去的日子裏,當瀏覽器沒有完整/正確的CSS實現時,開發人員依靠這些特性使頁面正確呈現。但是,隨着瀏覽器變得更符合標準,這些頁面不再正確顯示,因爲它們是基於不同類型的CSS編寫的。這是quirks模式進來的地方,因爲它處理爲這些破碎的CSS實現編寫的頁面。

因此,在2009年,除非您處理較舊的CSS或較舊的瀏覽器,否則您並不需要擔心怪癖模式。只需將你的CSS寫入當前的Web標準,你就可以。

+0

這就是說,如果你想支持IE6或7,你將需要支持幾乎標準模式 – Casebash 2010-07-07 10:14:04

3

怪癖模式也被稱爲兼容模式 - 意味着您的網頁在沒有聲明文檔類型的情況下運行(這是舊派,所以這很可能不再需要) 怪癖模式的全部點在於它是兼容模式爲IE5。這意味着除了改變佈局模式之外,它還關閉了自IE5以來發明的大部分瀏覽器功能。 在怪癖模式下,Web瀏覽器嘗試基於「最佳猜測」來呈現/製作代碼,這包括對非標準或不完整代碼的慷慨解釋。 如果您沒有聲明文檔類型,瀏覽器將不得不猜測您正在運行的HTML/CSS版本 怪癖模式使舊HTML文檔仍然能夠工作 Web瀏覽器用來保持向後兼容舊網頁。

,如果你寫一個正確的doctype,將觸發標準模式,而不是怪癖模式 舊的瀏覽器如Netscape 4,永久鎖定在特殊模式

怪癖模式使您的瀏覽器的行爲,就好像它是一個較舊瀏覽器

這是一種瀏覽器不守法的模式。它接受在此模式下的任何格式不正確的標記,並且對語法,標記和元素不嚴格 基本上表示它將接受您的代碼,即使其編寫不正確

在怪癖模式中,瀏覽器的行爲與他們在網絡的早期階段。這是爲了防止舊網站在新瀏覽器中突破。

在編寫在所有瀏覽器中看起來相同的頁面都有困難。事實上,這是不可能的。許多瀏覽器都寫有特殊功能,只有他們可以處理。或者他們有處理與其他瀏覽器處理它們不同的事物的特殊方法 使用非標準會導致每個瀏覽器都以怪癖模式運行。但並非所有瀏覽器在怪癖模式下表現都一樣,每個瀏覽器都會回到自己獨特的渲染引擎,這就是爲什麼在不同瀏覽器中看起來很相似的頁面非常困難。

還你所有的HTML5 CSS將無法工作,因爲這將不兼容

怪癖模式支持IE6的JavaScript功能,這是一個類似IE5的行爲,IE6,IE7的怪癖模式行爲和IE8。

在怪癖模式下,document.body(body-element)是根元素,在標準模式下它是html元素(document.documentElement)。 怪癖模式是針對舊規則的瀏覽器,它們使得在萬維網之前寫入的舊網站在HTML5發明之前就不會中斷。所以怪癖模式只是爲了支持那些CSS功能不正確的網站。所以現在開發者有了選擇。適用於舊版瀏覽器和網站的標準(今日瀏覽器)或古怪模式。在怪癖模式下,我們今天有很多CSS/HTML功能無法正常工作。

0

http://www.motive.co.nz/glossary/quirks-mode.php

  • 在特殊模式中,web瀏覽器試圖基於呈現代碼「最佳猜測」,這包括的代碼,非標準的或難溶形成的慷慨解釋。
  • 如果網頁沒有文檔類型聲明或具有不完整的文檔類型聲明(例如,如果省略了DTD的URI),則Web瀏覽器可能會切換到怪癖模式。
  • 怪癖模式可以使舊的HTML文檔仍然「有效」,並且應該在已知使用的代碼不符合當代技術標準(以及無意修改舊版內容的意圖/預算)時觸發。
+0

爲什麼回答這樣一個老問題? 7年前,當怪癖模式是一件大事時,這是被問及和回答的 - 你的回答沒有增加不同的觀點或任何新的價值。 – Jayx 2017-01-05 06:56:54

+0

我在「面試的HTML問題」網站上發現了這個問題。也許OP也是。 – munchschair 2017-01-08 03:07:24