DOCTYPE(文档类型)的作用是什么
- 简单来说就是告诉我们的浏览器采用什么方式渲染页面
- DOCTYPE是document type(文档类型)的简写,它必须放每个XHTML页面在所有的标识文档和代码之上。它是用来说明你的XHTML或HTML是什么版本.
- 需要注意的是,在HTML5中,DOCTYPE是不区分大小写;不过对于XHTML、Polyglot HTML,DOCTYPE这几个字母需要大写
- 浏览器的渲染方式主要有三种
- Quirks Mode(混杂模式/怪异模式/兼容模式)
- Standards Mode(标准模式/严格模式)
- Almost Standards Mode(几乎严格模式)
而浏览器之所以可以识别我们页面想要的版本就是DTD的存在(文档类型定义,浏览器会根据里面所规定的文档规则来读取你的标识的)。
- 怪异模式有哪些怪异的行为
- 为body设置margin值无效
- 默认情况下,IE有一个垂直滚动条,尽管当没有东西可以滚动的时候,它是非活动状态(迟钝状态),在Quirks Mode下,你可以通过设置body { overflow: auto;}删除它(当不需要它的时候),但是在标准模式下,你仍然需要增加html { overflow: auto;}。
- 默认的浮动图片的水平margin是3像素而不是0
- CSS中,使用margin:0 auto 使一个块水平居中是无效的
- 字体属性不会从body或其他封闭元素继承到table中。特别是font-size。字体,颜色,行高也都有可能。
- 盒模型 IE6以前 IE盒模型 width = padding + content + border 标准模型 width = width
- 元素中的字体 Quirks Mode下,对于table元素,字体的font-size font-style font-weight不会继承自body或其他闭合标签,只有family属性会被继承。而在Standard Mode模式下都会被继承
- Document Type Declaration DTD 文档类型声明
- 如果写了DTD,就意味着这个页面将采用对CSS支持更好的布局,这就是标准模式。如果没有,则采用兼容之前的布局方式,即怪异模式
- !DOCTYPE html表明该页面是遵守了HTML5规范,是Standards Mode 标准模式
- 当 doctype 信息为:“!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd””时,浏览器同样会选择 Standards Mode
- 当 doctype 信息为:“!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd””时,浏览器会选择 Almost Standards Mode
- 当doctype缺失或者写错时,浏览器会选择怪异模式 Quirks Mode
参考 :https://www.ibm.com/developerworks/cn/web/1310_shatao_quirks/