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語言則用來表現資料。
文件型別(DTD)和DOCTYPE
文件型別定義(Document Type Definition)是一套關於標記符的語法規則,定義了XML或者HTML的特定版本中允許有什麼,不允許有什麼,在渲染解析頁面的時候瀏覽器會根據這些規則檢查頁面的有效性並且採取相應的措施。關於DOCTYPE的三種風格,嚴格(strict),過渡(transitional)和框架集(frameset)。<!DOCTYPE> 宣告必須是 HTML 文件的第一行,位於 <html> 標籤之前。
Html4.01 和XHTML1.0:
strict模式:
1
|
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
1
2
|
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
過渡(transitional)模式:
1
2
|
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"> |
1
2
|
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
框架集(frameset):
1
2
|
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd"> |
1
2
|
<! 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:
1
|
<! DOCTYPE html>
|
瀏覽器廠商建立與標準相容的瀏覽器時,他們希望確定向後相容性,為了實現這一點他們建立兩種呈現模式,標準模式和混雜模式(quirks mode),在標準模式中,瀏覽器根據規範呈現頁面,在混雜模式中,頁面以一種比較寬鬆的向後相容的方式顯示。Html4.01中的如果包含DTD的DOCTYPE都是以標準模式呈現,如果DOCTYPE不存在或者形式不正確會HTML和XHTML文件以混雜模式呈現。
本文轉自Fly_Elephant部落格園部落格,原文連結:http://www.cnblogs.com/xiaofeixiang/p/5027746.html,如需轉載請自行聯絡原作者
相關文章
- DOCTYPE(文件型別)作用型別
- DTD文件型別定義型別
- XML中的DTD文件型別定義XML型別
- XHTML 對文件型別(DOCTYPE)的驗證HTML型別
- DOCTYPE宣告三種型別型別
- XML Schema和XML DTD的資料型別比較XML資料型別
- !DOCTYPE —— HTML文件模式HTML模式
- 探索 DTD 在 XML 中的作用及解析:深入理解文件型別定義XML型別
- HTML 文件型別HTML型別
- 23 文件型別和圖示不匹配型別
- Spring中DTD和XSDSpring
- 值型別和引用型別型別
- 逆向分析Office VBS宏型別文件型別
- HTML <!DOCTYPE>HTML
- 【R語言學習筆記】文件讀取和型別修改R語言筆記型別
- 關於DOCTYPE的使用和說明
- JavaScript值型別和引用型別JavaScript型別
- Date型別和Regex型別型別
- Swift值型別和引用型別Swift型別
- 型別預設和any型別型別
- js基本型別和引用型別區別JS型別
- html-表單HTML
- HTML-簡介HTML
- DTD – 元素概述
- Java的基本型別和引用型別Java型別
- DOCTYPE宣告作用
- typeScript 型別斷言、聯合型別和交叉型別(七)TypeScript型別
- TopThink對帖子的“回覆”和“評論”分別應用的是“目錄、主題、段落”3種文件型別中的哪個?“回覆”也是“主題”文件型別?型別
- JS篇-基本型別和引用型別、typeofJS型別
- TypeScript型別系統和基礎型別TypeScript型別
- java基本型別和包裝型別的“==”和equals()方法Java型別
- c#中值型別和引用型別的區別C#型別
- html-常用標籤HTML
- C#變數型別(1):引用型別和值型別 (轉)變數型別
- Scala 泛型型別和方法泛型型別
- 區別值型別資料和引用型別資料型別
- Java long型別和Long型別的那些事Java型別
- 強資料型別和弱資料型別資料型別