国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > HTML > 正文

DTD文檔類型聲明doctype

2024-08-26 00:09:33
字體:
來源:轉載
供稿:網友

html是萬維網上發布超文本的通用語言[1]。從1982年tim berners-lee簡化sgml建立html的原始定義到2001年發布xhtml1.1規范,html成為了有多個版本的國際標準[2]。各版本的規范都用一種機器可讀的語言定義,它描述了法定結構、元素和屬性,這就是文檔類型定義(document type definition),簡稱dtd。

相關文章:html代碼學習:doctype的縮寫

dtd描述了文檔類型聲明(dtd declaration,簡稱doctype[3])位于html文檔最前面,它是聯系文檔和dtd指令。比如html4.01 strict的doctype是:

<!doctype html public "-//w3c//dtd html 4.01//en" "http://www.w3.org/tr/html4/strict.dtd">

它指明了文檔使用的html版本,這是諸如瀏覽器之類的工具解析文檔時最需要的信息。比如w3c的驗證工具可依據它來檢查語法和指出錯誤。

早期瀏覽器對標準的錯誤實現、私有擴展的大量滋生和為了向前兼容以及早期標準本身的混亂等導致了那時的文檔既沒有doctype也沒有對dtd的直接引用,也導致了新的標準難以得到應用和普及,因為瀏覽器無法區分它們。為了處理根據web標準創作的網頁和根據陳舊實踐創作的網頁,todd fahrner 在1998年提出了“came up with a toggle”方法[4]能允許瀏覽器提供兩套渲染模式: 即有完整的doctype的文檔使用w3c的標準進行解析,否則使用舊的方式解析。

這個方法符合實際且簡單有效。兩年后,mac版ie上首次運用,很快的其他瀏覽器制造商紛紛采用, 這就誕生了doctype嗅探(doctype sniffing或doctype switching)。瀏覽器通過它來決定其引擎應該采用標準模式、準標準模式還是怪癖模式,這將對html和css的解析、css布局及javascript腳本產生非常大的影響[5] 。毫無疑問,我們應該盡可能的采用標準模式。

html5雖然還處于草案中,但最新瀏覽器firefox3.5、chrome2、safari4和ie8已經開始支持部分特性,特別是google wave的發布掀起了推進html5實踐的新高潮。html5并不基于sgml也沒有dtd,但它為了向前兼容,接受了doctype嗅探這個事實,定義了在text/html中doctype是唯一的模式轉換聲明,除此外沒有什么用處。其doctype如此簡潔:<!doctype html>[6]

值得一提的是ie8為了解決向前兼容采用了x-ua-compatible聲明[7],導致在ie8中瀏覽器的渲染模式不僅僅取決于doctype嗅探還取決于x-ua-compatible聲明,這個不僅僅導致了模式判斷更加復雜[8],也違背了web設計的逐漸增強(progressive enhancement)思想[9]

在web標準的道路上,我們不僅需要充滿現實主義向前兼容,更需要充滿理想主義的向后兼容,這是保證我們的web能在未來正常工作的希望。在標準、簡單和逐漸增強的思想下,現在我們頁面的最佳方案或許是:

<!doctype html>…<meta http-equiv="x-ua-compatible" content="ie=edge">…

注釋:

  • [1] html is the lingua franca for publishing hypertext on the world wide web
  • [2] http://zh.wikipedia.org/wiki/html
  • [3] dtd declaration在以前規范中也常叫document type declaration,很容易和dtd混淆。
  • [4] http://web.archive.org/web/20030212115103/http://www.geocrawler.com/archives/list-name.mbox/123/1998/7/0/1037920/
  • [5] 用doctype激活瀏覽器模式
  • [6] http://www.w3.org/tr/html5/syntax.html#the-doctype
  • [7] 超越文檔類型,web標準化向前兼容和ie8
  • [8] http://dancewithnet.com/2009/06/14/activating-browser-modes-with-doctype/#ie8modes
  • [9] web標準前途是否依賴瀏覽器技術
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南江县| 姜堰市| 邵阳市| 昌江| 桓仁| 山阳县| 玉环县| 林甸县| 平南县| 皮山县| 常山县| 嫩江县| 诏安县| 临邑县| 萝北县| 秦皇岛市| 南安市| 瓮安县| 韩城市| 鹿邑县| 铁力市| 桂阳县| 图们市| 清涧县| 闽清县| 广元市| 尼勒克县| 玉田县| 鹰潭市| 巫溪县| 江永县| 乌兰浩特市| 浦城县| 牙克石市| 巴彦淖尔市| 舒城县| 小金县| 北川| 泾阳县| 甘南县| 湘西|