Doctype 嚴格模式與混雜模式

2021-07-26 02:40:22 字數 1794 閱讀 8665

宣告叫做檔案型別定義(dtd),宣告的作用為了告訴瀏覽器該檔案的型別。讓瀏覽器解析器知道應該用哪個規範來解析文件。宣告必須在 html 文件的第一行,但這並不是乙個 html 標籤。

嚴格模式:又稱標準模式,是指瀏覽器按照 w3c 標準解析**。

混雜模式:又稱怪異模式,是指瀏覽器用自己的方式解析**。

1、如果文件包含嚴格的 doctype ,那麼它一般以嚴格模式呈現。(嚴格 dtd ——嚴格模式)

2、包含過渡 dtd 和 uri 的 doctype ,也以嚴格模式呈現,但有過渡 dtd 而沒有 uri (統一資源識別符號,就是宣告最後的位址)會導致頁面以混雜模式呈現。(有 uri 的過渡 dtd ——嚴格模式;沒有 uri 的過渡 dtd ——混雜模式)

3、doctype 不存在或形式不正確會導致文件以混雜模式呈現。(dtd不存在或者格式不正確——混雜模式)

4、html5 沒有 dtd ,因此也就沒有嚴格模式與混雜模式的區別,html5 有相對寬鬆的語法,實現時,已經盡可能大的實現了向後相容。( html5 沒有嚴格和混雜之分)

意義:嚴格模式與混雜模式存在的意義與其**密切相關,如果說只存在嚴格模式,那麼許多舊**必然受到影響,如果只存在混雜模式,那麼會回到當時瀏覽器大戰時的混亂,每個瀏覽器都有自己的解析模式。

1、html5(一種):

2、html 4.01(三種):嚴格模式包含所有 html 元素和屬性,但不包括展示性的和棄用的元素(比如 font),不允許框架集(framesets);過渡模式包含所有 html 元素和屬性,包括展示性的和棄用的元素(比如 font),不允許框架集(framesets);框架模式等同於過渡模式,但允許框架集內容。

html 4.01 strict :

html 4.01 transitional :

html 4.01 frameset :

3、xhtml 1.0(四種):前三種模式同上,xhml 必須以格式正確的 xml 來編寫標記。

xhtml 1.0 strict:

xhtml 1.0 transitional:

xhtml 1.0 frameset:

xhtml 1.1 該 dtd 等同於 xhtml 1.0 strict,但允許新增模型。

當年netscape4(網景公司早期的瀏覽器)和ie4(微軟公司早期的瀏覽器)實現css機制時,並沒有遵循w3c提出的標準。netscape4提供了糟糕的支援,而ie4雖然接近標準,但依舊未能完全正確的支援標準。儘管ie5修復了ie4許多的問題,但是依然延續css實現中的其它故障(主要是盒模型問題)。

為了保障自己的**在各個瀏覽器上顯示正確,網頁開發者們不得不依據各個瀏覽器自身的規範來使用css,因此大部分**的css實現並不符合w3c規範的標準。

然而隨著標準一致性越來越重要,瀏覽器開發商不得不面臨乙個艱難的抉擇:逐漸遵循w3c的標準是前進的方向。但是改變現有的css,完全去遵循標準,會使許多舊**或多或少受到破壞,如果瀏覽器突然以正確的方式解析現存的css,陳舊的**的顯示必然會受到影響。所以,所有的瀏覽器都需要提供兩種模式:混雜模式服務於舊式規則,而嚴格模式服務於標準規則。

DOCTYPE 嚴格模式與混雜模式

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

嚴格模式與混雜模式

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

doctype 嚴格模式與標準模式

doctype 是乙個文件型別標記,是一種標準通用標記語言的文件型別宣告,在 web 設計中用來說明你用的 xhtml 或者 html 是什麼版本 重點在於文件的dtd 如果文件中包含了嚴格的doctype,那麼它一般以嚴格模式呈現。如果文件中包含過渡dtd和uri的doctype,也以嚴格模式呈現...