我不知道的DOCTYPE

最熟悉的往往最容易被忽略 ——DOCTYPE

關(guān)于DTD


wiki解釋

A document type declaration, or DOCTYPE, is an instruction that associates a particular SGML or XML document (for example, a webpage) with a document type definition (DTD) (for example, the formal definition of a particular version of HTML1.0 - HTML 4.0).[1] In the serialized form of the document, it manifests as a short string of markup that conforms to a particular syntax.

這段話的大致意思是 文檔類型聲明(DTD)是用特定的文件類型相關(guān)聯(lián)的指令 (如特定版本的 HTML1.0-html 4.0 的正式定義) 定義sgml 或 xml 文檔(如網(wǎng)頁)。在文檔的序列化中闽瓢,它表現(xiàn)為標(biāo)記的短字符串唆垃,符合特定語法肛真。

w3c 解釋

A DTD is a Document Type Definition.
A DTD defines the structure and the legal elements and attributes of an XML document.

簡單明了袁铐,DTD是文檔類型的申明(這樣描述不太全面学密,我覺的還應(yīng)該包含語法規(guī)則在里面)淘衙,DTD定義了XML文檔的結(jié)構(gòu)與合法元素以及XML屬性。

MDN解釋

<!DOCTYPE> 通知瀏覽器您用來編寫文檔 的HTML(或XML)版本腻暮。Doctype是一個(gè)聲明彤守,而不是標(biāo)簽 ; 您也可以將其稱為“文檔類型聲明”,或簡稱為“DTD”哭靖。

DTD語法結(jié)構(gòu)


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">

HTML 4.01 Transitional

該 DTD 包含所有 HTML 元素和屬性筝蚕,包括展示性的和棄用的元素(比如 font)。不允許框架集(Framesets)。

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

HTML 4.01 Frameset

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

該 DTD 包含所有 HTML 元素和屬性起宽,包括展示性的和棄用的元素(比如 font)洲胖。允許框架集(Framesets)。

HTML 5

   <!DOCTYPE html>

一般的結(jié)構(gòu)模式為:

   <!DOCTYPE root-element PUBLIC "FPI" ["URI"] [ <!-- internal subset declarations -->]>

or

   <!DOCTYPE root-element SYSTEM "URI" [ <!-- internal subset declarations -->]>

公共和系統(tǒng)的關(guān)鍵字坯沪,代表它是什么樣的文檔類型定義的绿映。如果它是公共的,那么這個(gè)關(guān)鍵字后面的“公共標(biāo)識(shí)”稱為FPI(正式公共標(biāo)識(shí))是受限制的屏箍,如果它是系統(tǒng)中,只有一個(gè)系統(tǒng)標(biāo)識(shí)符必須給出橘忱。它指出赴魁,XML解析器必須找到系統(tǒng)中的特定方式的文檔類型定義

HTML5的DOCTYPE聲明,是非常短的钝诚,因?yàn)樗狈σ粋€(gè)URL或FPI(正式公共標(biāo)識(shí))的形式的文檔類型定義(DTD)的引用颖御。在HTML5中,正規(guī)的語法是大寫字母定義凝颇,但即使兩個(gè)小寫字母和小寫大寫混合物是也被視為有效潘拱。此外HTML5不是基于SGML,使用DOCTYPE只為模式選擇拧略。該聲明是在所有主流瀏覽器的支持芦岂。

XHTML與HTML類似,點(diǎn)擊查看

瀏覽器模式


為了能夠很好地顯示滿足標(biāo)準(zhǔn)的頁面垫蛆,又能最大程度兼容不合法的HTML禽最。 瀏覽器廠商一般會(huì)提供兩種瀏覽器模式:

標(biāo)準(zhǔn)模式(standards mode):瀏覽器根據(jù)標(biāo)準(zhǔn)規(guī)約來渲染頁面。
混雜模式(quirks mode):瀏覽器采用更加寬松的袱饭、向后兼容的方式來渲染頁面川无。
混雜模式下,瀏覽器會(huì)模仿舊瀏覽器的行為虑乖,比如IE6懦趋,在此基礎(chǔ)上兼容新的標(biāo)準(zhǔn)特性。 混雜模式又稱兼容模式疹味、怪異模式等仅叫。

DOCTYPE切換


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

以下情況瀏覽器會(huì)采用標(biāo)準(zhǔn)模式渲染:

  • 給出了完整的DOCTYPE聲明
  • DOCTYPE聲明了Strict DTD
  • DOCTYPE聲明了Transitional DTD和URI

以下情況瀏覽器會(huì)采用混雜模式渲染:

  • DOCTYPE聲明了Transitional DTD但未給出URI
  • DOCTYPE聲明不合法
  • 未給出DOCTYPE聲明
    tip:如果你是使用最新標(biāo)準(zhǔn)編寫的頁面但未給出DOCTYPE聲明惑芭,這時(shí)就可能會(huì)出現(xiàn)一些怪異的行為。 例如盒模型不正確继找、窗口的size不正確等問題遂跟。所以,盡量為你網(wǎng)站的所有頁面都給出合法的DOCTYPE聲明

<!doctype html> 的作用


  1. 你可以輕松的寫下這個(gè)doctype,而不用擔(dān)心會(huì)寫錯(cuò)幻锁;
  2. 你大概省下了105字節(jié)字符凯亮,對于一個(gè)每日PV達(dá)到千萬級的站點(diǎn),它可以省下相當(dāng)客觀流量哄尔;
  3. 它是向后兼容的假消,是的,html5的doctype就是這樣寫的岭接,并且現(xiàn)代瀏覽器都認(rèn)識(shí)它富拗;
  4. !doctype申明為標(biāo)準(zhǔn)模式;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸣戴,一起剝皮案震驚了整個(gè)濱河市啃沪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌窄锅,老刑警劉巖创千,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異入偷,居然都是意外死亡追驴,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門疏之,熙熙樓的掌柜王于貴愁眉苦臉地迎上來殿雪,“玉大人,你說我怎么就攤上這事锋爪」谏悖” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵几缭,是天一觀的道長河泳。 經(jīng)常有香客問我,道長年栓,這世上最難降的妖魔是什么拆挥? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮某抓,結(jié)果婚禮上纸兔,老公的妹妹穿的比我還像新娘。我一直安慰自己否副,他們只是感情好汉矿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著备禀,像睡著了一般洲拇。 火紅的嫁衣襯著肌膚如雪奈揍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天赋续,我揣著相機(jī)與錄音男翰,去河邊找鬼。 笑死纽乱,一個(gè)胖子當(dāng)著我的面吹牛蛾绎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鸦列,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼租冠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了薯嗤?” 一聲冷哼從身側(cè)響起顽爹,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎应民,沒想到半個(gè)月后话原,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體夕吻,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡诲锹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涉馅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片归园。...
    茶點(diǎn)故事閱讀 40,117評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖稚矿,靈堂內(nèi)的尸體忽然破棺而出庸诱,到底是詐尸還是另有隱情,我是刑警寧澤晤揣,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布桥爽,位于F島的核電站,受9級特大地震影響昧识,放射性物質(zhì)發(fā)生泄漏钠四。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一跪楞、第九天 我趴在偏房一處隱蔽的房頂上張望缀去。 院中可真熱鬧,春花似錦甸祭、人聲如沸缕碎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咏雌。三九已至凡怎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間处嫌,已是汗流浹背栅贴。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留熏迹,地道東北人檐薯。 一個(gè)月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像注暗,于是被迫代替她去往敵國和親坛缕。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評論 2 355

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

  • 1. XML簡介 以下內(nèi)容來自于http://www.w3school.com.cn/xml 基本知識(shí) XML 和...
    WebSSO閱讀 1,916評論 1 7
  • 格式后期處理捆昏。 Jeremy Keith在 Fronteers 2010 上的主題演講 今天我想跟大家談一談HTM...
    LordZhou閱讀 1,129評論 0 17
  • 簡介網(wǎng)絡(luò)瀏覽器很可能是使用最廣的軟件赚楚。在這篇入門文章中,我將會(huì)介紹它們的幕后工作原理骗卜。我們會(huì)了解到宠页,從您在地址欄輸...
    wengjq閱讀 2,030評論 2 15
  • 序章 談?wù)劇盀g覽器兼容性”的問題遍烦?很多前端的面試或筆試中俭嘁,都有比較籠統(tǒng)的“說說你所知道的各瀏覽器存在的兼容問題”,...
    麻辣小隔壁閱讀 3,048評論 1 57
  • 補(bǔ)完課的我們,就像脫韁的野馬一樣罢猪,奔馳在自由的田野近她。 整日無所事事卻未感到半分輕松。作業(yè)就像堆起來的城堡那么高膳帕。沒...
    野草莓少女的信箱閱讀 107評論 1 0