首頁  >  文章  >  web前端  >  總是被忽略的DOCTYPE

總是被忽略的DOCTYPE

高洛峰
高洛峰原創
2017-02-15 13:58:191637瀏覽

名詞解釋

  • DTD: Document Type Definition 文件類型定義

  • SGML: Standard Generalized Markup Language 標準通用標記語言。

SGML 是一種很強大但很複雜的標記語言,HTML、XML 就是從中衍生出來的。

為什麼有個「!」?

聲明不是HTML標籤;

的位置?

聲明必須位於HTML文檔的第一行,位於標籤之前

的作用?

告知瀏覽器用什麼標準解析這個文件。 DOCTYPE不存在或格式不正確會導致文件以相容模式呈現。

HTML4.01與HTML5 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中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn