历史介绍
1. 首先
IE5.5引入文档模式的概念,这个概念通过使用文档类型
(doctype)切换实现。
最初两种文档模式:
-
混杂模式
让IE的行为与IE5相同 -
标准模式
:
让IE的行为更接近标准行为
这两种模式主要影响CSS内容的呈现,某些情况也会影响到JS的解释执行。
2. 效仿
IE引入文档模式的概念后,其他浏览器纷纷效仿。
3. 然后
IE又提出一种所谓的准标准模式
。
这种模式下的浏览器特性有很多都是符合标准的。 不标准的地方主要体现在处理图片间隙的时候(表格中使用图片问题最明显)
4. 注意
文档开始处无文档类型声明,所有浏览器默认开启混杂模式
浏览器在混杂模式下的行为差异非常大,不使用某些hack技术,跨浏览器行为根本没有一致性可言准标准模式与标准模式非常接近,他们的差异几乎可以忽略不计
因此, 有人提到“标准模式”时,有可能是两种模式中的任意一种
5. DOCTYPE 声明
标准模式
HTML 5
<!DOCTYPE html>
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">
XHTML 1.0 Strict
该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。必须以格式正确的 XML 来编写标记。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.1
该 DTD 等同于 XHTML 1.0 Strict,但允许添加模型(例如提供对东亚语系的 ruby 支持)。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
准标准模式
对于准标准模式,可以通过使用过渡型
(transitional)或框架集型(framesets)文档类型来触发。
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
该 DTD 等同于 HTML 4.01 Transitional,但允许框架集内容。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
XHTML 1.0 Transitional
该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。必须以格式正确的 XML 来编写标记。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0 Frameset
该 DTD 等同于 XHTML 1.0 Transitional,但允许框架集内容。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">