quirks和standards的区别很多都可以归为IE5和IE6的区别。
- 盒模型的高宽包含内补丁和边框
- 在W3C标准中,如果设置一个元素的宽度和高度,指的是元素内容的宽度和高度,而在Quirks模式下,IE的宽度和高度还包含了padding和border。IE5.5及以下的浏览器即使在Standards模式下,也会有这个问题
- 可以设置行内元素的高宽
- 在Standards模式下,给span等行内元素设置wdith和height都不会生效,而在quirks模式下,则会生效
- 可设置百分比的高度
- 在standards模式下,一个元素的高度是由其包含的内容来决定的,如果父元素没有设置百分比的高度,子元素设置一个百分比的高度是无效的
- 用margin:0 auto设置水平居中在IE下会失效
- 使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下却会失效,quirk模式下的解决办法,用text-align属性:
body{text-align:center};#{content:text-align:left}
- 设置图片的padding会失效
- Table中的字体属性不能继承上层的设置
- white-space: pre会失效
- 许多CSS默认样式将不同
- 在Standards模式下,给span等行内元素设置wdith和height都不会生效,而在quirks模式下,则会生效
- 这些都不用怎么去管了,以前的版本谁在意呢。如何避免默认quirk模式呢,一是设置doctype(<!DOCTYPE HTML>),二是doctype前不允许有任何字符(空字符除外),因为一旦发现有字符在文档首浏览器将会输出其在body并将字符与<HTML>之间的标记<!***>用<!—->注释起来,那么文档内容将无doctype设置。
- 这里测试的仅为IE9,其他浏览器未知。