浏览器内核和Standards模式与Quirks模式

1、五大浏览器
IE:trident内核
Firefox:gecko内核
Google:Blink(基于webkit)
Opera:Blink内核
Safari:webkit内核
2、Quirks 模式是什么?它和 Standards 模式有什么区别
IE6开始,引入了Standards模式,标准模式中,浏览器尝试给符合标准的文档在规范上的正确处理达到在指定浏览器中的程度。

在IE6之前CSS还不够成熟,所以IE5等之前的浏览器对CSS的支持很差, IE6将对CSS提供更好的支持,然而这时的问题就来了,因为有很多页面是基于旧的布局方式写的,而如果IE6 支持CSS则将令这些页面显示不正常,如何在即保证不破坏现有页面,又提供新的渲染机制呢?

在写程序时我们也会经常遇到这样的问题,如何保证原来的接口不变,又提供更强大的功能,尤其是新功能不兼容旧功能时。遇到这种问题时的一个常见做法是增加参数和分支,即当某个参数为真时,我们就使用新功能,而如果这个参数 不为真时,就使用旧功能,这样就能不破坏原有的程序,又提供新功能。IE6也是类似这样做的,它将DTD(Document Type Definition文档类型定义)当成了这个“参数”,因为以前的页面大家都不会去写DTD,所以IE6就假定 如果写了DTD,就意味着这个页面将采用对CSS支持更好的布局,而如果没有,则采用兼容之前的布局方式。这就是Quirks模式(怪癖模式诡异模式怪异模式)。
区别:分为布局、样式解析和脚本执行三方面的区别
<1>盒模型:标准的盒子模型(Standards)元素的高度宽度为content,IE盒子模型(Quirks)元素的高度宽度为padding+border+content
<2>设置行内元素高宽:Standards下span等行内元素设置宽高不生效,Quirks下生效
<3>margin:0 auto设置水平居中:使用margin:0 auto在Standards模式下可以使元素水平居中,但在Quirks模式下却会失效。
<4>设置百分比的高度:在Standards模式下,一个元素的高度是由其包含的内容来决定的,如果父元素没有设置百分比的高度,子元素设置一个百分比的高度是无效的

猜你喜欢

转载自blog.csdn.net/weixin_43901550/article/details/107408487