文檔聲明類型(DTD)

一、DTD聲明的重要性
      首先我們要知道當你在寫一個頁面時,文檔類型聲明是必須的。如果你沒有聲明文檔類型,那麼你的HTML將是不合法的,且大部分瀏覽器會啓用“怪異模式”來處理你的頁面,也就是瀏覽器會按照自己的方式去處理你的代碼,而不是你想要的方式。另外,DTD聲明還關係CSS會以什麼模式解析,瀏覽器解析CSS有兩種模式:標準模式(strict mode)和怪異模式(quirks mode,所謂的標準模式是指,瀏覽器按W3C標準解析執行代碼;怪異模式則是使用瀏覽器自己的方式解析執行代碼,因爲不同瀏覽器解析執行的方式不一樣,所以我們稱之爲怪異模式。DTD聲明定義了標準文檔的類型(標準模式解析),會使瀏覽器使用相應的方式加載網頁並顯示,忽略DTD聲明,將使網頁進入怪異模式(quirks mode)。

二、DTD(Document Type Declaration)
       DOCTYPE聲明文檔類型,以便驗證文檔是否符合文檔類型定義(DTD),同時指定了瀏覽器關於頁面使用哪個HTML版本進行編寫的指令。開發人員在編寫完html代碼後,要進行有效性驗證。w3c提供了一個驗證文檔有效性的在線服務:http://validator.w3.org/。

       DOCTYPE聲明不是html標籤,必須放在html文檔的第一行,而且絕不能在它之前添加xml聲明語句,否則在IE6會觸發怪異模式。在HTML 4.0.1中,DOCTYPE引用了DTD,因爲HTML 4.0.1基於SGML,這個版本是IE6開始兼容的。DTD規定了標記語言的規則,這樣瀏覽器才能正確的呈現內容。HTML5不是基於SGML,所以不需要引用DTD,HTML5是IE9開始兼容的。

三、常用的 DOCTYPE 聲明種類
DTD一共有7種:HTML4.0.1有六種,HTML5一種
HTML4.0.1裏面有兩種大的規範:普通和XHTML(X表示嚴格的,嚴格體現在必須使用小寫標籤、標籤必須閉合、引號等)
普通的HTML規範和XHTML中又各規定了3種小規範:Strict(嚴格的,體現在一些標籤不能使用,例如u)、Transitional(普通的)、Frameset(帶有框架的頁面)
1、HTML 4.01 Strict

     嚴格型的DTD聲明包含所有 HTML 元素和屬性,但不包括展示性的和棄用的元素(比如 font)。不允許框架集(Framesets)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2、HTML 4.01 Transitional

     過渡型的DTD聲明包含所有HTML元素和屬性,包括展示性和棄用的元素。但不允許框架集。聲明舉例如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3、HTML 4.01 Frameset

     該 DTD 等同於 HTML 4.01 Transitional,但允許框架集內容。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
4、XHTML 1.0 Strict

     該 DTD 包含所有 HTML 元素和屬性,但不包括展示性的和棄用的元素(比如 font)。不允許框架集(Framesets)。必須以格式正確的 XML 來編寫標記。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
5、XHTML 1.0 Transitional

     該 DTD 包含所有 HTML 元素和屬性,包括展示性的和棄用的元素(比如 font)。不允許框架集(Framesets)。必須以格式正確的 XML 來編寫標記。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6、XHTML 1.0 Frameset

     該 DTD 等同於 XHTML 1.0 Transitional,但允許框架集內容。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

7、HTML5

<!DOCTYPE html>
     HTML5極大簡化了DOCTYPE聲明,即使對於未實現HTML5標準的主流瀏覽器,都會檢查文檔類型聲明,並將內容切換到標準模式,因此我們現在就可以使用HTML5編寫網頁,而不必擔心將來出現兼容性問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章