《javascript高階程式設計》筆記:文件模式

同夢奇緣發表於2017-08-07

文件模式是用於指定瀏覽器使用什麼樣的標準來正確的顯示網頁,各個標準的解析存在著差異

文件型別的分類

文件模式大致分為三種型別:

  • 混雜模式(quirks mode)
  • 標準模式(standards mode)
  • 準標準模式(almost standards mode)

混雜模式會讓 IE 的行為與(包含非標準特性的)IE5 相同,而標準模式則讓 IE 的行為更接近標準行為。雖然這兩種模式主要影響 CSS 內容的呈現,但在某些情況下也會影響到 JavaScript 的解釋執行;而準標準模式下的瀏覽器特性有很多都是符合標準的,但也不盡然。不標準的地方主要體現在處理圖片間隙的時候(在表格中使用圖片時問題最明顯)。如果在文件開始處沒有發現文件型別宣告(DTD),則所有瀏覽器都會預設開啟混雜模式

文件型別宣告的幾種形式

HTML5

<!DOCTYPE html>

HTML 4.01 Strict
該DTD包含所有html元素和屬性,但不包括展示性和啟用的元素(如font),不允許框架Framesets。

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

HTML 4.01 Transitional
該 DTD 包含所有 HTML 元素和屬性,包括展示性的和棄用的元素(比如 font)。不允許框架集(Framesets)

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

HTML 4.01 Frameset
該 DTD 等同於 HTML 4.01 Transitional,但允許框架集內容。

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

XHTML 1.0 Strict
該 DTD 包含所有 HTML 元素和屬性,但不包括展示性的和棄用的元素(比如 font)。不允許框架集(Framesets)。必須以格式正確的 XML 來編寫標記

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

XHTML 1.0 Transitional
該 DTD 包含所有 HTML 元素和屬性,包括展示性的和棄用的元素(比如 font)。不允許框架集(Framesets)。必須以格式正確的 XML 來編寫標記。

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

XHTML 1.0 Frameset
該 DTD 等同於 XHTML 1.0 Transitional,但允許框架集內容。

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

XHTML 1.1
該 DTD 等同於 XHTML 1.0 Strict,但允許新增模型(例如提供對東亞語系的 ruby 支援)。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

部分內容參考:HTML DOCTYPE標籤

相關文章