<!DOCTYPE>到底是個神馬? 前兩天和朋友談到<!DOCTYPE>,今天將網上學習到的資料在這裡整理一下 因為HTML5的風靡人們慢慢的弱化了對<!DOCTYPE>的理解,但是現在還是有很多的面試官在問這個問題,所以還是有必要對其瞭解一下,以便以後有些許談資。 1.<!DOCTYPE>有神馬作 ...
<!DOCTYPE>到底是個神馬?
前兩天和朋友談到<!DOCTYPE>,今天將網上學習到的資料在這裡整理一下
因為HTML5的風靡人們慢慢的弱化了對<!DOCTYPE>的理解,但是現在還是有很多的面試官在問這個問題,所以還是有必要對其瞭解一下,以便以後有些許談資。
1.<!DOCTYPE>有神馬作用?
要弄清楚這個問題,我們首先來解釋一下瀏覽器的“標準模式”和“怪異模式”。
什麼是“怪異模式”?簡單說就是瀏覽器為了相容很早之前針對舊版本瀏覽器設計、並未嚴格遵循W3C標準的網頁而產生的一種頁面渲染模式,而在這時渲染引擎也會切換到需要的版本。
什麼是“標準模式”?當用戶需要顯示一些新的、滿足W3C規範的頁面時,渲染引擎切換到一個與“怪異模式”相對的“標準模式”,在此模式下渲染引擎就是當前的最新版本。這樣也就滿足了更多的W3C規範。
最後,“標準模式”和“怪異模式”合起來就稱為瀏覽器的文檔模式。
當在IE6的時代,為了既能遵循W3C標準,又能保證舊的網頁能繼續瀏覽,這樣就產生了“標準模式”和“怪異模式”。這兩種渲染模式都存在一個瀏覽器上,但是手動切換又不切實際,微軟就提出了文檔類型(DOCTYPE)這個在當時非常“新穎”的概念
<!DOCTYPE>就這樣“華麗”的誕生了,先不說去談論它的好壞,我們只說說它的作用:告知瀏覽器的解析器用什麼文檔標準去解析這個文檔。
2.<!DOCTYPE>不存在或格式錯誤會有影響嗎?
DOCTYPE 不存在或格式不正確會導致文檔以“怪異模式”呈現。
3.HTML5為什麼只需要寫<!DOCTYPE HTML>
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