DTD: Document Type Definition 文件類型定義
SGML: Standard Generalized Markup Language 標準通用標記語言。
SGML 是一種很強大但很複雜的標記語言,HTML、XML 就是從中衍生出來的。
聲明不是HTML標籤;
聲明必須位於HTML文檔的第一行,位於標籤之前
告知瀏覽器用什麼標準解析這個文件。 DOCTYPE不存在或格式不正確會導致文件以相容模式呈現。
HTML5只有一種聲明:
HTML4.01有三種聲明:strict, transitional, frameset
HTML4.01基於SGML,需要對DTD進行引用,告知瀏覽器使用的文檔類型。
HTML5不基於SGML,不需要對DTD進行引用,但需要DOCTYPE規範瀏覽器行為。
SGML 最為強大和古老,XML 是 SGML 的子集,HTML 最初也試圖成為 SGML 的一個子集,但 HTML 4 以前並不嚴格符合 SGML 的標準。後來出現了 HTML4,XHTML (符合 XML 標準的 HTML),這兩者都符合 SGML 的要求。
W3C 在製定 HTML5 標準時,希望擺脫 SGML 的一些無用的功能和聲明,並延續 HTML4 的風格,而非嚴格的 XHTML 的風格。
頁面的渲染模式根據是否聲明了DOCTYPE分別觸發相容模式和標準模式。
document.compatMode可以傳回目前頁面的相容模式:
document.compatMode > CSS1Compat //标准模式 > BackCompat //怪异模式、兼容模式
標準模式頁面排版和JS運作模式都是以瀏覽器支援的最高標準運作。
相容模式中,頁面以寬鬆向後相容的方式顯示,模擬老式瀏覽器的行為以防止網站無法運作。
更多總是被忽略的DOCTYPE 相關文章請關注PHP中文網!