HTML文件里開頭的DOCTYPE有什么作用

DOCTYPE是document type(文檔類型)的簡寫,在web設(shè)計中用來聲明文檔類型。

在所有 HTML 文檔中規(guī)定 DOCTYPE 是非常重要的邀层,這樣瀏覽器就能了解預(yù)期的文檔類型夫植, 告訴瀏覽器要通過哪一種規(guī)范(DTD)解析文檔(比如HTML或XHTML規(guī)范)。

DOCTYPE聲明必須在 HTML 文檔的第一行把沼,它不屬于 HTML 標簽; 它是一條指令吁伺,告訴瀏覽器編寫頁面所用的標記的版本饮睬。

doctype會影響代碼驗證,并決定了瀏覽器最終如何顯示你的Web文檔篮奄。


DOCTYP與DTD與SGML

HTML 4.01 中的 doctype 需要對 DTD 進行引用捆愁,因為 HTML 4.01 基于 SGML割去。

DTD:(Document Type Definition)文檔類型定義是一種特殊文檔,它規(guī)定昼丑、約束符合標準通用標示語言(SGML)或SGML子集可擴展標示語言(XML)規(guī)則的定義和陳述呻逆。

SGML:標準通用標記語言,是一種定義電子文檔結(jié)構(gòu)和描述其內(nèi)容的國際標準語言菩帝; 通用標言為語法置標提供了異常強大的工具咖城,同時具有極好的擴展性,因此在數(shù)據(jù)分類和索引中非常有用胁附; 是所有電子文檔標記語言的起源酒繁,早在萬維網(wǎng)發(fā)明之前“通用標言”就已存在。

Doctype可聲明三種DTD類型控妻,分別表示嚴格版本州袒、過渡版本以及基于框架的 HTML 文檔。

以HTML4.01為例

超文本嚴格文檔類型定義HTML Strict DTD 弓候,不允許使用表現(xiàn)性郎哭、廢棄元素(如font)以及frameset。聲明:

< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"

? ? "http://www.w3.org/TR/html4/strict.dtd">

超文本過渡文檔類型定義HTML Transitional DTD 允許使用表現(xiàn)性菇存、廢棄元素(如font)夸研,不允許使用frameset。聲明:

< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

? ? "http://www.w3.org/TR/html4/loose.dtd">

超文本框架集文檔類型定義HTML Strict DTD 允許表現(xiàn)性元素依鸥,廢棄元素以及frameset亥至。聲明:

< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"

? ? "http://www.w3.org/TR/html4/frameset.dtd">

瀏覽器的呈現(xiàn)模式

現(xiàn)代的瀏覽器需要不同模式, 既要呈現(xiàn)久遠的HTML界面贱迟, 不至于界面結(jié)構(gòu)混亂不堪姐扮,也需要呈現(xiàn)W3C標準的界面:

標準模式(strict)---是指瀏覽器按照 W3C 標準解析代碼,呈現(xiàn)頁面

怪異模式---是指瀏覽器用自己的方式解析代碼衣吠,即使用一種比較寬松的向后兼容的方式來顯示頁面

DOCTYPE切換

瀏覽器根據(jù)不同的DOCTYPE選擇不同的渲染方法就叫做DOCTYPE切換茶敏。 其實DOCTYPE切換就是用來識別和兼容舊網(wǎng)頁的。

以下情況瀏覽器會采用標準模式渲染:

給出了完整的DOCTYPE聲明

DOCTYPE聲明了Strict DTD

DOCTYPE聲明了Transitional DTD和URI

以下情況瀏覽器會采用怪異模式渲染:

DOCTYPE聲明了Transitional DTD但未給出URI

DOCTYPE聲明不合法

未給出DOCTYPE聲明

現(xiàn)今情況

HTML5協(xié)議下 統(tǒng)一寫 < !DOCTYPE html>缚俏。

HTML 5 不基于 SGML惊搏,因此不需要對 DTD 進行引用,也就沒有嚴格模式與怪異模式的區(qū)別忧换,但是需要 doctype 來規(guī)范瀏覽器的行為(html 5簡化了這種聲明恬惯,意在告訴瀏覽器使用統(tǒng)一的標準即可);HTML5 有相對寬松的語法包雀,實現(xiàn)時宿崭,已經(jīng)盡可能大的實現(xiàn)了向后兼容。( HTML5 沒有嚴格和混雜之分)

如果不聲明DOCTYPE會發(fā)生什么才写?

如果你是使用最新標準編寫的頁面但未給出DOCTYPE聲明葡兑,瀏覽器會采用怪異模式渲染,這時就可能會出現(xiàn)一些怪異的行為。 例如盒模型不正確赞草、窗口的size不正確等問題讹堤。所以,盡量為你網(wǎng)站的所有頁面都給出合法的DOCTYPE聲明厨疙。

有沒有其他進入怪異模式的方法?

除了不寫DOCTYPE聲明外洲守,最常見的就是在DOCTYPE聲明前面出現(xiàn)了這些內(nèi)容:普通文本、HTML 標簽沾凄、HTML 注釋梗醇、XML 聲明、IE條件注釋撒蟀。


參考文獻:

參考一:?為何說 HTML5「no longer based on SGML」叙谨?

參考二:?HTML_嚴格模式與混雜模式

參考三:?你知道什么是doctype,什么是文檔模式嗎

參考四:?嚴格模式與混雜模式-如何觸發(fā)這兩種模式保屯,區(qū)分它們有何意義


什么是 XHTML與XML有什么關(guān)系手负?

W3C 下與網(wǎng)頁(超文本)相關(guān)的標準有兩個系列:HTML 系列和 XHTML 系列。

HTML 系列從 HTML 第一版一直發(fā)展到 HTML 4.x姑尺、HTML5竟终,HTML 系列的工作重點在于豐富與超文本相關(guān)的功能、標記切蟋,提供較好的兼容性统捶,更加面向“人”;

?XHTML 系列從 XHTML 1.0柄粹、1.1喘鸟、2.0 跳躍到 HTML5 的一部分:所謂的“XHTML5”。而 XHTML 系列的工作重點在于將 HTML 改為更加符合 XML 嚴格規(guī)范的格式镰惦,更加面向“機器”迷守。

XML 的語法很嚴格,是 W3C 的寶貝旺入,所以 W3C 試圖把各種東西都變成 XML 的子集或應(yīng)用兑凿,比如 MathML,SVG 等茵瘾±窕可是其地位逐漸受到其他一些輕量標記語言的威脅。

為何html5的頭部申明如此不同拗秘?

html5的頭聲明圣絮,其實是一種回歸,回歸簡單聲明方式

HTML5 不再是基于 SGML 的語言雕旨,而 doctype 只是用來激活模式的扮匠。

HTML5 之前捧请,HTML 都是用 SGML 來書寫的,DOCTYPE 則用來聲明文檔類型棒搜,它可以告訴 SGML parser 使用什么 DTD 來解析文檔疹蛉。所以到了 HTML5,根本就沒有對應(yīng)的 DTD力麸,也就沒有后面一串異常復(fù)雜的表述了可款。

為什么 HTML5 不再是 SGML 了呢?

SGML 需要在 DTD 中定義好標簽和屬性克蚂,但是 HTML5 中要允許自定的標簽和屬性的闺鲸,原來的框架太過束縛,它需要更加廣大的范圍來放飛自己埃叭。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末摸恍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子游盲,更是在濱河造成了極大的恐慌误墓,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件益缎,死亡現(xiàn)場離奇詭異谜慌,居然都是意外死亡,警方通過查閱死者的電腦和手機莺奔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門欣范,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人令哟,你說我怎么就攤上這事恼琼。” “怎么了屏富?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵晴竞,是天一觀的道長。 經(jīng)常有香客問我狠半,道長噩死,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任神年,我火速辦了婚禮已维,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘已日。我一直安慰自己垛耳,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著堂鲜,像睡著了一般栈雳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上泡嘴,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天甫恩,我揣著相機與錄音逆济,去河邊找鬼酌予。 笑死,一個胖子當著我的面吹牛奖慌,可吹牛的內(nèi)容都是我干的抛虫。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼简僧,長吁一口氣:“原來是場噩夢啊……” “哼建椰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起岛马,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤棉姐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后啦逆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伞矩,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年夏志,在試婚紗的時候發(fā)現(xiàn)自己被綠了乃坤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡沟蔑,死狀恐怖湿诊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情瘦材,我是刑警寧澤厅须,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站食棕,受9級特大地震影響朗和,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宣蠕,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一例隆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抢蚀,春花似錦镀层、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吴侦。三九已至,卻和暖如春坞古,著一層夾襖步出監(jiān)牢的瞬間备韧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工痪枫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留织堂,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓奶陈,卻偏偏與公主長得像易阳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吃粒,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容