web基礎(四)嚴格模式與混雜模式

學無止境發表於2020-08-16

web基礎(四)嚴格模式與混雜模式

一、介紹

DOCTYPE 標籤是一種標準通用標記語言的文件型別宣告,它的目的是要告訴標準通用標記語言解析器,它應該使用什麼樣的文件型別定義(DTD)來解析文件。DOCTYPE 可宣告三種DTD型別,分別表示嚴格版本、過渡版本以及基於框架的 HTML 文件

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

  • 嚴格模式:瀏覽器以其支援的最高標準呈現頁面。
  • 混雜模式:頁面以一種比較寬鬆的向後相容的方式顯示。混雜模式通常模擬老式瀏覽器的行為以防止老站點無法工作。

下面以 HTML 與 XHTML 為例介紹一下嚴格模式和混雜模式

(一)、HTML

1、嚴格模式的定義:如果需要乾淨的標記,免於表現層的混亂,則使用此型別。與層疊樣式表配合使用:(公共識別符號稱為:“-//W3C//DTD HTML 4.01//en”。),示例如下:

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

2、混雜模式定義:可包含全球資訊網聯盟所期望移入樣式表的呈現屬性和元素。如果讀者使用了不支援層疊樣式表的瀏覽器以至於不得不使用超文字標記語言的呈現特性時,則使用此型別:(公共識別符號稱為:“-//W3C//DTD HTML 4.01 Transitional//en”。),示例如下:

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

3、基於框架的模式定義:框架集文件型別定義應當被用於帶有框架的文件。除 frameset 元素取代了 body 元素之外,等同於過渡文件型別定義:(公共識別符號稱為:“-//W3C//DTD HTML 4.01 Frameset//en”。),示例如下:

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

(二)、XHTML

1、嚴格模式的定義:同 HTML 的概念大致一樣,(公共識別符號稱為:“-//W3C//DTD XHTML 1.0 Strict//en”。)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

2、混雜模式定義:可包含 W3C 所期望移入樣式表的呈現屬性和元素。如果您的讀者使用了不支援層疊樣式表(CSS)的瀏覽器以至於您不得不使用 XHTML 的呈現特性時,請使用此型別:(公共識別符號稱為:“-//W3C//DTD XHTML 1.0 Transitional//en”。)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

3、基於框架的模式定義:希望使用框架時,請使用此文件型別定義:(公共識別符號稱為:“-//W3C//DTD XHTML 1.0 Frameset//en”。)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//en" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

 二、關於模式觸發

  • 瀏覽器根據DOCTYPE是否存在以及使用的哪種DTD來選擇要使用的呈現方法。
  • 如果XHTML、HTML 4.01文件包含形式完整的DOCTYPE,那麼它一般以標準模式呈現。
  • 包含過渡DTD和URI的DOCTYPE也導致頁面以標準模式呈現,但是有過渡DTD而沒有URI會導致頁面以混雜模式呈現。
  • DOCTYPE不存在或形式不正確會導致HTML和XHTML文件以混雜模式呈現。
  • html5既然沒有DTD,也就沒有嚴格模式與寬鬆模式的區別,html5有相對寬鬆的語法,實現時,已經儘可能大的實現了向後相容。

相關文章