html5的文档申明为什么是!DOCTYPE html?
首先我們來了解一下什么是文檔聲明:
文檔聲明就是文檔告訴游覽器該以什么樣的標(biāo)準(zhǔn)去解析它。游覽器可以解析的文檔可不止html,還有xhtml,xml...當(dāng)然在這里我們并不需要知道xhtml、xml是什么以及和html的區(qū)別,我們只需要知道,游覽器可以解析的文檔不止html ,所以文檔聲明是必須的,為的就是保證游覽器能夠正確解析文檔類型。
然后我們?cè)賮砹私庀?strong>html(Hyper Text Markup Language)<超文本標(biāo)記語言>:
所謂的超文本就是超級(jí)文本,或者超越文本的意思,因?yàn)樗梢猿尸F(xiàn)圖片,音樂甚至是音頻,普通的文本當(dāng)然就是只能呈現(xiàn)文字,標(biāo)記你可以理解為就是標(biāo)簽<a><div>等,在一個(gè)文檔里通過標(biāo)簽(標(biāo)記)去對(duì)文檔進(jìn)行分類整理。至于語言,當(dāng)然就是交流的工具,超文本標(biāo)記語言就是供人和游覽器交流的語言。
xhml,xml 各是什么語言我就不做贅述了,總之游覽器都能識(shí)別他們,但是他們都有各自的文檔規(guī)則,甚至同種語言不同版本的文檔規(guī)則也有差別,下面給出部分文檔的聲明:
1.XHTML1.1
? ? ? ?語法:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2.XHTML 1.0 Frameset
? ? ? 語法:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
3.XHTML 1.0 Transitional
? ? ? 語法:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4.XHTML 1.0 Strict
? ? ? 語法:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">? ? ?
5.HTML 4.01 Frameset
? ? ? 語法:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">? ?
6.HTML 4.01 Strict
? ? ? 語法:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
其中 Frameset(框架) strict(嚴(yán)格) transitional (過渡),在這里我們只需要知道是用來給文檔劃分使用條件的,比如使用strict的類型聲明的文檔,游覽器解析起來就會(huì)更加嚴(yán)格
我們可以看到<!doctype html 后面跟了一大串屎一樣的的尾巴,這個(gè)尾巴就是DTD.
那么什么是DTD?
其實(shí)xhtml html(html5 之前),還有xml 都是基于一個(gè)標(biāo)準(zhǔn)或語言制定的,這個(gè)標(biāo)準(zhǔn)就是sgml(standard gernerate makeup laugue)<標(biāo)準(zhǔn)通用標(biāo)記語言>,你可以把這個(gè)語言當(dāng)做xhtml html(h5 以前)xml的母親,而sgml 有一個(gè)DTD(document type definition) <文檔類型申明>用來區(qū)分這些語言,游覽器對(duì)于每一個(gè)DTD 都有一整套制定好的規(guī)則,用來幫助解析文檔。。
最后到了我們的html5了。html5則一反常態(tài)直接脫離sgml ,自己形成了一套標(biāo)準(zhǔn)。這套標(biāo)準(zhǔn)目前已經(jīng)被幾乎所有游覽器收錄,而html5的文檔聲明很簡(jiǎn)單:只有<! doctype html>
那么對(duì)于那些沒有收錄html5標(biāo)準(zhǔn)的游覽器,當(dāng)遇到html5的聲明會(huì)如何處理呢?
其實(shí)幾乎所有版本的游覽器都有處理文檔頭不正確的方法,對(duì)于識(shí)別不了的文檔頭則當(dāng)做不正確處理,針對(duì)缺失的不正確的文檔頭游覽器都有自己的默認(rèn)兼容模式去解析文檔
?
轉(zhuǎn)載于:https://www.cnblogs.com/thinkingweb/p/10689175.html
總結(jié)
以上是生活随笔為你收集整理的html5的文档申明为什么是!DOCTYPE html?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Edge on Linux?微软:会有的
- 下一篇: ES6-note-Set和Map(草稿)