Html-文檔類型(DTD)和DOCTYPE


在正式介紹文檔類型(DTD)和DOCTYPE之前,我們需要先了解HTML和XHTML的之間的區別,現在Html5已經慢慢的成為主流,之前的數十年一直都是Html4.01的天下,Html4.01於1999年成為標准后一直成為大多數人使用的Html版本。2000年的時候W3C發布了HTML4.01的XML版命名為XHTML1.0。Html4.01和XHTML1.0之間主要的區別就是遵守XML編碼約定,標簽閉合就是XML基礎規范。XHTML1.1作為后來者更接近XML,但是跟XHTML1.0相比,XHTML1.0可以作為Html文檔,XHTML1.1頁面是作為XML發送給瀏覽器,即使XHTML1.1中只含有一個錯誤(未編碼的&的符號),web瀏覽器無法顯示頁面,因為XHTML1.1不受歡迎。

Html5和XHTML2

Html是一種基於標准通用標記語言(SGML)的應用,XHTML則基於可擴展標記語言(XML),HTML和XHTML其實是平行發展的兩個標准。本質上說,XHTML是一個過渡技術,結合了部分XML的強大功能及大多數HTML的簡單特性。建立XHTML的目的就是實現HTML向XML的過渡。XML設計用來傳送及攜帶數據信息,不用來表現或展示數據,HTML語言則用來表現數據。

XHTML只是在內容結構上改進原有的HTML系統,XHTML2.0也僅僅在XHTML1.1的基礎上更加注重頁面規范和可用性,缺乏交互性。在Web App大行其道的年代,XHTML2就不合時宜了,於是就催生了HTML5。 W3C無視Web設計人員的需求,僅從理論角度閉門造車,卻扛着標准的大旗,引發了來自Opera、Apple以及Mozilla等瀏覽器廠商的反對聲音。2004年,他們組建了一個以推動網絡HTML5標准為目的的組織——網頁超文本技術工作小組(Web Hypertext Application Technology Working Group,縮寫為WHATWG)。
 
Html5目標是取代HTML4.01和XHTML1.0標准,旨在提高網頁性能,增加頁面交互。Html5吸取了XHTML2一些建議,包括一些用來改善文檔結構的功能,比如,新的HTML標簽header、footer、dialog、aside、figure等的使用,將使內容創作者更加語義地創建文檔,之前的開發者在這些場合是一律使用div的。
 
W3C與WHATWG雙方經過多年努力,終於在2006年達成妥協。2006年10月,Web之父、萬維網聯盟(W3C)主席、美國國家科學院院士蒂姆·伯納斯-李(Tim Berners-Lee)發表了一篇博客文章表示,從HTML走向XML的路是行不通的(XHTML is dead)。2009年W3C明智的放棄了改進XHTML2.0標准的計划,選擇了WHATWG的成果作為基礎。事實上,XHTML在2002年更新之后的數年時間里,盡管發現了眾多問題,但都沒有去修改過。W3C在2014年10月29日,Html5標准規范終於制定完成。

文檔類型(DTD)和DOCTYPE

文檔類型定義(Document Type Definition)是一套關於標記符的語法規則,定義了XML或者HTML的特定版本中允許有什么,不允許有什么,在渲染解析頁面的時候瀏覽器會根據這些規則檢查頁面的有效性並且采取相應的措施。關於DOCTYPE的三種風格,嚴格(strict),過渡(transitional)和框架集(frameset)。<!DOCTYPE> 聲明必須是 HTML 文檔的第一行,位於 <html> 標簽之前。

Html4.01 和XHTML1.0:

strict模式:

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

過渡(transitional)模式:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

框架集(frameset):

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

框架集(frameset)用的情況比較少,strict風格的 DTD 包含所有 HTML 元素和屬性,但不包括展示性的和棄用的元素(比如 font),過渡(transitional)風格的DTD仍然使用已經廢棄的元素,但是Html5中就不需要這么復雜了,只有一個DOCTYPE:

<!DOCTYPE html>

瀏覽器廠商創建與標准兼容的瀏覽器時,他們希望確定向后兼容性,為了實現這一點他們創建兩種呈現模式,標准模式和混雜模式(quirks mode),在標准模式中,瀏覽器根據規范呈現頁面,在混雜模式中,頁面以一種比較寬松的向后兼容的方式顯示。Html4.01中的如果包含DTD的DOCTYPE都是以標准模式呈現,如果DOCTYPE不存在或者形式不正確會HTML和XHTML文檔以混雜模式呈現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM