首發(fā)地址:
文檔類型
再介紹文檔類型之前,我們先來看下 HTML 文件的基本結(jié)構(gòu):
<html>
<head>
<meta charset="utf-8">
<title>我的測(cè)試站點(diǎn)title>
head>
<body>
<p>這是我的頁(yè)面p>
body>
html>
其中 就是文檔類型( Type , DTD)聲明。
HTML 來源于 SGML文檔類型有哪些, SGML 用 DTD 來定義每一種文檔類型。在 HTML5 出現(xiàn)之前,HTML 都是使用符合 SGML 規(guī)定的 DTD。這些復(fù)雜的 DTD 寫法并沒有什么實(shí)際作用(瀏覽器根本不會(huì)用 SGML 引擎解析它們)。因此,到了 HTML5,干脆放棄了 SGML 子集這項(xiàng)堅(jiān)持,規(guī)定了一個(gè)簡(jiǎn)單的,大家都能記住的 DTD:。
必須聲明在 HTML 文檔的第一行。
不是 HTML 標(biāo)簽,它是用來告訴瀏覽器使用哪種模式來渲染頁(yè)面,以及使用什么規(guī)則來驗(yàn)證頁(yè)面。
告訴瀏覽器當(dāng)前頁(yè)面是使用哪個(gè) HTML 版本編寫的指令,瀏覽器會(huì)根據(jù)不同的 HTML 版本規(guī)則來校驗(yàn)頁(yè)面。
文檔模式
上面我們說 會(huì)告訴瀏覽器使用使用哪種模式來渲染頁(yè)面文檔類型有哪些,那么一共有幾種文檔模式呢?
目前瀏覽器的排版引擎有三種文檔模式:
嚴(yán)格模式與混雜模式存在的意義與其來源密切相關(guān),如果說只存在嚴(yán)格模式,那么許多舊網(wǎng)站必然受到影響,如果只存在混雜模式,那么會(huì)回到當(dāng)時(shí)瀏覽器大戰(zhàn)時(shí)的混亂,每個(gè)瀏覽器都有自己的解析模式。
這幾種模式的區(qū)別主要是會(huì)影響 CSS 內(nèi)容的呈現(xiàn),但在某些情況下也會(huì)影響到 的解釋執(zhí)行。
聲明 ,瀏覽器會(huì)默認(rèn)開啟標(biāo)準(zhǔn)模式;否則,部分瀏覽器會(huì)使用混雜模式渲染頁(yè)面(有些瀏覽器仍會(huì)按照標(biāo)準(zhǔn)模式來解析)。
[附錄]H5前常用的聲明
HTML 4.01
該 DTD 包含所有 HTML 元素和屬性,但不包括展示性的和棄用的元素(比如 font)。不允許框架集()。
HTML 4.01
該 DTD 包含所有 HTML 元素和屬性,包括展示性的和棄用的元素(比如 font)。不允許框架集()。
HTML 4.01
該 DTD 等同于 HTML 4.01 ,但允許框架集內(nèi)容。
XHTML 1.0
該 DTD 包含所有 HTML 元素和屬性,但不包括展示性的和棄用的元素(比如 font)。不允許框架集()。必須以格式正確的 XML 來編寫標(biāo)記。
XHTML 1.0
該 DTD 包含所有 HTML 元素和屬性,包括展示性的和棄用的元素(比如 font)。不允許框架集()。必須以格式正確的 XML 來編寫標(biāo)記。
XHTML 1.0
該 DTD 等同于 XHTML 1.0 ,但允許框架集內(nèi)容。
XHTML 1.1
該 DTD 等同于 XHTML 1.0 ,但允許添加模型(例如提供對(duì)東亞語系的 ruby 支持)。