HTML DOCTYPE 檔案類型聲明

在 HTML 文件最開頭的第一行,一定要寫上這一段 DOCTYPE:

<!DOCTYPE html>

本質上 DOCTYPE 不是一個 HTML 標籤,宣告 DOCTYPE 的用意是用來告訴瀏覽器 (browser) 這一份文件是屬於什麼文件類型 (Document Type Declaration, DTD),現代網頁的 DOCTYPE 基本上都是用 <!DOCTYPE html> 來表示這是一份標準的 HTML5 文件。

沒宣告 DOCTYPE 或是宣告一個錯誤的 DOCTYPE,會造成瀏覽器無法預期的行為,像是渲染 (render) CSS 排版時怎麼和你想要的不太一樣,稱之為瀏覽器處於怪異模式 (Quirks mode) 下。

順便也來介紹一些舊時代常見的 DOCTYPE,你可能還會在一些網頁中看見這些寫法:

HTML 4.01 Strict

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

HTML 4.01 Transitional

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

HTML 4.01 Frameset

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

XHTML 1.0 Strict

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

XHTML 1.0 Transitional

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

XHTML 1.0 Frameset

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

XHTML 1.1

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