Doctype标准模式和怪异模式?
Doctype是一种标准通用的文档类型声明,它必须出现在文件的第一行,目的是告诉浏览器使用什么样的文档类型定义(DTD)来解析文档。
它不是HTML标签它是规定浏览器以什么方式解析代码
在HTML 4.0.1,Doctype中有三个不同的文档类型,它的声明格式为
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> //strict
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> //transitional
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">// frameset
标准模式(严格模式 strict mode)
混杂模式(怪异模式 quirks mode)
所谓的标准模式是浏览按照W3C标准解析代码
混杂模式是以一种比较宽松的向后兼容的方式显示
浏览器的解析无论是标准模式还是怪异模式都与 Doctype声明有关,DTD声明定义了标准文档的类型,使浏览器使用相应的方式加载网页并显示,忽略DTD声明,将进入怪异模式。
标准模式和怪异模式对盒子的影响
标准模式的盒子:
- 其中宽度:content
- 元素宽度:content + padding2 + border 2
- 外盒宽度: content + padding *2 + border * 2 + margin * 2
怪异模式的盒子
- 其中宽度:content + padding * 2 + border * 2
- 元素宽度:content
- 外盒宽度:content + margin *2
解决
- 声明DOCTYPE为标准模式,ie6在标准模式下能够符合W3C标准
- 使用box-sizing属性,设置为border-box
2.1 content-box:默认值,让元素维持W3C的标准盒模型
2.2 border-box:让元素维持IE传统(混杂模式)的盒模型
2.3 inherit:从父元素继承box-sizing属性的值