html 文档通常以类型声明开始, 该声明将帮助浏览器确定其尝试解析和显示的 HTML 文档类型. 本文将详细介绍文档声明 DOCTYPE.
特点
文档声明必须是 HTML 文档的第一行, 且顶格显示, 对大小写不敏感. 因为任何放在 DOCTYPE 前面的东西, 比如批注或 xml 声明, 会令 IE9 或更早期的浏览器触发怪异模式(后面的渲染模式会介绍).
由于文档类型声明不是标签, 因此不应具有关闭标签.
版本
声明
HTML5
<!DOCTYPE HTML>
在 HTML5 之前, 文档声明一般有三种类型: 严格型 strict, 过渡型 transitional, 框架 frameset.
严格型 DTD 包含所有 HTML 元素和属性, 但不包含展示性的和弃用的元素 (如 font); 而过渡型或宽松型(loose) 则包含展示性和启用的元素.
HTML4.01
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
- XHTML1.0
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML1.1 等同于 XHTML1.0 Strict
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
- [DTD]
DTD 称为文档类型定义, 它可以定义合法的 xml 文档构建模块, 它使用一系列合法的元素来定义文档的结构. 在 HTML 中, DTD 使用 xml 定义了 HTML 标签规范.
由于 HTML5 不基于 SGML, 所以不需要引用 DTD. 但是需要 doctype 来启用标准模式(后面的渲染模式会介绍).HTML5 的语法元素来自 SGML,HTML,XHTML1.X, 使它成为一种有自己规则的合成语言.
HTML,xml 和 SGML 这三者的关系并不容易区分. HTML 是 SGML 的一个实例, 它的 DTD 作为标准被固定下来, 因此, HTML 不能作为定义其它置标语言的元语言.
xml 是 SGML 的一个子集, 严格地讲, xml 也还是 SGML. 与 HTML 不同的是, xml 有 DTD, 因而也可以像 SGML 那样作为元语言, 来定义其它文件系统或置标语言.
如果把置标语言分为元置标语言和实例置标语言的话, SGML 和 xml 都是元置标语言, 而 HTML 和由 xml 派生的 XHTML 都是实例置标语言.
渲染模式
在很久以前的网络上, 页面通常有两种版本: 为网景 (Netscape) 的 Navigator 准备的版本以及为微软 (Microsoft) 的 Internet Explorer 准备的版本.
当 W3C 创立网络标准后, 为了不破坏当时既有的网站, 浏览器不能直接起用这些标准. 因此, 浏览器采用了两种模式, 用以把能符合新规范的网站和老旧网站区分开.
浏览器排版引擎有三种模式: 怪异模式 (Quirks mode), 接近标准模式(Almost standards mode) 以及标准模式(Standards mode).
在怪异模式下, 排版会模拟 Navigator4 与 Internet Explorer 5 的非标准行为. 为了支持在网络标准被广泛采用前, 就已经建好的网站, 这么做是必要的.
在标准模式下, 行为即由 HTML 与 CSS 的规范描述的行为.
在接近标准模式下, 只有少数的怪异行为被实现
对 HTML 文档来说, 浏览器使用文档开头的 DOCTYPE 来决定用怪异模式处理或标准模式处理. 如果文档中没有 DOCTYPE 将触发文档的怪异模式.
怪异模式最明显的影响是会触发怪异盒模型. 在 CSS 中盒模型被分为两种, 第一种是 W3C 的标准模型, 第二种是怪异盒模型. 不同之处在于怪异盒模型的宽高定义的是可见元素框的尺寸, 而不是元素框的内容区尺寸.
本文转自: https://www.cnblogs.com/xiaohuochai/p/6213200.html
更多 HTML 知识请关注 HTML 中文网 HTML 教程 https://www.html.cn/web/html/ 栏目.
来源: http://www.css88.com/web/html/16112.html