/

什麼是 Doctype

什麼是 Doctype

任何 HTML 文件都必須以文件類型聲明(Document Type Declaration),簡稱 Doctype,開頭,該聲明告訴瀏覽器該頁面使用的 HTML 版本。

任何 HTML 文件都必須在第一行開始以 文件類型聲明 (簡稱doctype)開始,該聲明告訴瀏覽器該頁面使用的 HTML 版本。

這個文件類型聲明(不區分大小寫):

1
<!DOCTYPE html>

告訴瀏覽器這是一個 HTML5 文件

瀏覽器渲染模式

有了這個聲明,瀏覽器可以以標準模式來呈現文件。

如果沒有它,瀏覽器將以怪異模式來呈現頁面。

如果你聽過怪異模式,你必須知道瀏覽器引入這種渲染模式是為了使以「舊風格」編寫的頁面與使用的新功能和標準兼容。如果沒有它,隨著瀏覽器和 HTML 的發展,舊的頁面將破壞其外觀,而網絡平台在這方面一直非常保護(這是我認為其成功的一部分)。

瀏覽器基本上在未識別頁面為標準模式的情況下默認使用怪異模式。

你希望使用標準模式,並且

1
<!DOCTYPE html>

是實現它的方法。

對於 Internet Explorer <= 10 的使用者,還需要額外注意避免怪異模式,方法是在頁面的 <head> 標籤中,在加載任何腳本之前,插入以下內容:

1
<meta http-equiv="X-UA-Compatible" content="IE=Edge">

舊的 HTML 版本

HTML 有一套奇怪的版本:

  • HTML(1991)
  • HTML 2.0(1995)
  • HTML 3.2(1997)
  • HTML 4.01(1999)
  • XHTML(2000)
  • HTML5(2014)

HTML 4.01 Strict 文件的文件類型聲明為:

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

XHTML 類似:

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

它們需要一個 文件類型定義(Document Type Definition,DTD),因為這些舊的 HTML 版本是基於 SGML,一種定義文檔結構的格式。

XHTML 也需要 html 標籤具有命名空間,例如:

1
<html xmlns="http://www.w3.org/1999/xhtml">

這些文件類型聲明總是要求你保存 DTD 聲明的位置,因為幾乎不可能記住它。而且,嚴格模式或過渡模式(比較寬鬆)需要使用不同的 DTD。

XHTML 是一種 XML 語言,而 HTML4(和更低版本)是 SGML 應用程序。現在的 HTML,HTML5,受到了 HTML4 很大的啟發,但它不是一個 SGML 應用程序,並且放棄了許多 XHTML 的嚴格規則。

HTML5 不是基於 SGML 的,而是基於自己的標準,因此不需要 DTD,我們可以從以下簡單的聲明中受益:

1
<!DOCTYPE html>

tags: [“docType”, “HTML”, “standards mode”, “quirks mode”, “SGML”, “DTD”, “XHTML”, “HTML5”]