HTML的嚴格模式和混雜模式

2021-08-06 00:09:55 字數 1521 閱讀 4250

宣告位於文件的最前位置,處於標籤之前,可以告訴瀏覽器使用哪種html/xhmtl文件

該標籤有三種型別:嚴格版本、過度版本、以及基於框架的html文件

1.瀏覽器模式

標準模式:瀏覽器根據規範呈現頁面

混雜模式:頁面以一種比較寬鬆的向後相容的方式顯示,混雜模式通常模擬老瀏覽器的行為已防止老式站點無法工作

2.差異

(1) ie的盒模型,i6標準模式使用標準的盒模型,混雜模式使用的老式專有盒模型(寬度包括padding和border)

(2) 對16進製制的顏色不用加#

(3) 沒有單位的長度單位為px

(4) 關鍵字字型大小加一級

3.如何觸發這兩種模式

總的來說,瀏覽器根據doctype是否存在以及使用的哪種dtd來選擇使用哪種模式來呈現,具體規則如下:

(1). 對於xhtml來說,一般包含完整的doctype,則以標準模式呈現

(2). 對於html4.0.1,包含嚴格dtd的doctype常常導致頁面以標準模式呈現,包含過渡dtd和uri的doctype也會以標準模式呈現,但是有過渡dtd沒有uri的頁面以混雜模式呈現

(3). doctype不存在或則不正確,頁面會以混雜模式呈現

(4). 對於傳統的xml定義,例如:<?xml version="1.0" encoding="utf-8"?>,如果將這句話放在頁面的頂部,則在i6下以混雜模式呈現

當瀏覽器廠商開始建立與標準相容的瀏覽器時,他們希望確保向後相容性。為了實現這一點,他們建立了兩種呈現模式:標準模式和混雜模式

>>在標準模式中,瀏覽器以其支援的最高標準呈現頁面。

>>在混雜模式中,頁面以一種比較寬鬆的向後相容的方式顯示。混雜模式通常模擬老式瀏覽器的行為以防止老站點無法工作。

關於模式觸發瀏覽器根據doctype是否存在以及使用的哪種dtd來選擇要使用的呈現方法。

如果xhtml、html 4.01文件包含形式完整的doctype,那麼它一般以標準模式呈現。

包含過渡dtd和uri的doctype也導致頁面以標準模式呈現,但是有過渡dtd而沒有uri會導致頁面以混雜模式呈現。

doctype不存在或形式不正確會導致html和xhtml文件以混雜模式呈現。

html5既然沒有dtd,也就沒有嚴格模式與寬鬆模式的區別,html5有相對寬鬆的語法,實現時,已經盡可能大的實現了向後相容。

如何觸發文件模式:

觸發混雜模式:

如果在文件開始處沒有發現文件型別宣告,則所有瀏覽器都會預設開啟混雜模式。但採用混雜模式不是什麼值得推薦的做法,因為不同瀏覽器在這種模式下的行為差異非常大,如果不使用某些hack技術,跨瀏覽器的行為根本就沒有一致性可言。

觸發標準模式:

觸發準標準模式:

ie8中關閉超級標準模式:

//content屬性中ie的值用於指定使用哪個版本的呈現引擎來呈現頁面。設計這個值的目的就是為了向後相容那些專門為老版本的ie設計的站點和頁面。

文章參考:

嚴格模式和混雜模式

doctype document type 文件型別 的簡寫,來告訴瀏覽器以何種方式解析。1 過度的 transitional,也叫混雜模式 要求比較寬鬆,允許繼續使用html4.01的標識,完整宣告為 doctype html public w3c dtd xhtml 1.0 transition...

嚴格模式與混雜模式

嚴格模式 又稱標準模式,是指瀏覽器按照 w3c 標準解析 混雜模式 又稱怪異模式或相容模式,是指瀏覽器用自己的方式解析 區分方法 如果文件包含嚴格的 doctype 那麼它一般以嚴格模式呈現。包含過渡 dtd 和 uri 的 doctype 也以嚴格模式呈現,但有過渡 dtd 而沒有 uri 統一資...

DOCTYPE 嚴格模式與混雜模式

在過去的舊式瀏覽器中,css渲染的相容異常糟糕,都沒有使用w3c提供的標準模式,但是標準化不得不進行。於是提供的混雜模式 怪異模式 與標準模式。觸發條件 1 產生於標準化浪潮以前的網頁並沒有doctype宣告。因此 沒有doctype 意味著觸發怪異模式 既依據舊式的css規則渲染網頁。2 相反,如...