<!DOCTYPE> 宣告位於 HTML 文件最頂端,在 <html> 標籤之前。它告訴瀏覽器當前文件遵循哪種文件型別定義 (DTD),進而決定瀏覽器以何種模式 (標準模式、近標準模式、怪異模式) 解析渲染頁面。正確的 DOCTYPE 是確保跨瀏覽器一致性的第一步。
XHTML 將 HTML 重構為 XML 應用,要求更嚴格的語法 (標籤閉合、屬性加引號、小寫標籤)。
| 類型 | 適用場景 | 宣告語法 |
|---|---|---|
| Strict | 純結構語義,完全配合 CSS 排版,不使用表現屬性/元素 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd"> |
| Transitional | 過渡期專案,需相容舊瀏覽器,允許部分表現屬性 (如 bgcolor, align) |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd"> |
| Frameset | 使用框架集 (<frameset>) 的頁面 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "https://www.w3.org/TR/html4/frameset.dtd"> |
| 類型 | 適用場景 | 宣告語法 |
|---|---|---|
| Strict | 嚴格 XML 語法,純語義結構 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
| Transitional | 最常用,允許表現屬性,相容性最佳 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| Frameset | 框架頁面 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> |
HTML5 簡化為唯一宣告:<!DOCTYPE html>。不區分大小寫,無需引用 DTD 網址。所有現代瀏覽器 (含 IE6+) 均啟用標準模式。這是目前新專案的首選。
前面不能有任何字元 (含空白、BOM、註解),否則 IE 會進入怪異模式。
若伺服器以 text/html 傳送 XHTML,瀏覽器仍按 HTML 解析,XML 的嚴格錯誤處理不生效。真正的 XHTML 需 application/xhtml+xml,但 IE8 以下不支援。
<!--[if IE 6]>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<![endif]-->
<!--[if gt IE 6]>