前兩天和朋友談到,今天將網上學習到的資料在這裡整理一下
因為HTML5的風靡人們慢慢的弱化了對的理解,但是現在還是有很多的面試官在問這個問題,所以還是有必要對其了解一下,以便以後有些許談資。
要弄清楚這個問題,我們首先來解釋一下瀏覽器的「標準模式」和「怪異模式」。
什麼是「怪異模式」?簡單說就是瀏覽器為了相容很早之前針對舊版瀏覽器設計、並未嚴格遵循W3C標準的網頁而產生的一種頁面渲染模式,而在這時渲染引擎也會切換到需要的版本。
什麼是「標準模式」?當使用者需要顯示一些新的、滿足W3C規範的頁面時,渲染引擎切換到一個與“怪異模式”相對的“標準模式”,在此模式下渲染引擎就是當前的最新版本。這樣也就滿足了更多的W3C規格。
最後,「標準模式」和「怪異模式」合起來就稱為瀏覽器的文檔模式。
當在IE6的時代,為了既能遵循W3C標準,又能保證舊的網頁能繼續瀏覽,這樣就產生了「標準模式」和「怪異模式」。這兩種渲染模式都存在一個瀏覽器上,但是手動切換又不切實際,微軟就提出了文檔類型(DOCTYPE)這個在當時非常「新穎」的概念
就這樣「華麗」的誕生了,先不說去談論它的好壞,我們只說說它的作用:告知瀏覽器的解析器用什麼文檔標準去解析這個文檔。
DOCTYPE 不存在或格式不正確會導致文件以「怪異模式」呈現。
HTML5 不基於SGML,因此不需要對DTD(Document Type Definition)進行引用,但是需要doctype來規範瀏覽器的行為(讓瀏覽器按照它們應有的方式來運行)。
而HTML4.01是基於SGML,所以需要對DTD(Document Type Definition)進行引用,告知瀏覽器文件所使用的文件類型。
註:SGML是國際上定義電子文檔和內容描述的標準,基本思想是把文檔的內容與樣式分開。由SGML聲明(SGML Declaration)、文件類型定義(Document Type Definition,DTD)和文件實例(Document Instance)組成。
參考來源:
http://www.cnblogs.com/zichi/p/5147159.html