标签:
相信经常使用 IE 浏览器的用户对于 IE 兼容模式不会感到陌生,当然我们浏览网站出现错乱的问题,开启 IE 兼容模式便可以正常浏览了。 为什么会有 IE 兼容模式的出现呢?这个和IE浏览器的发展历程相关,在 IE8 之前浏览器基本上属于 IE 一家独大。由于网络标准发展缓慢,为了应对网页开发的需求,IE 定义了很多只有 IE 才能解析的标准。 后来火狐和 Chrome 出现,推动了网络标准的前进。但之前按照 IE 标准做的网站就会出现问题,这样使得 IE 处于一种很尴尬的处境。 为了解决这个问题,微软在 IE8 以后加入了所谓的兼容性模式,也就是能够在旧的网站使用兼容性模式浏览,而一切正常,而到比较新的网站就用正常模式浏览。 并且也是从 IE8 开始支持 X-UA-Compatible 元标记(允许网页作者指定 IE 用哪个内核来渲染页面),并在其内置的开发工具中提供名为“文档模式”的内核切换调试方式。从 IE8 开始,上述两种方式(元标记、开发工具)就都没提供 IE6 模式。
接下来,我们进一步分析一下为什么唯独没有IE6模式: IE5 本质上就是“怪癖模式 (Quirks Mode)”(深入:http://www.open-open.com/lib/view/open1407374391848.html)。IE 浏览器基于“向后兼容”的目的,必须要包含此内核,以便“正确”渲染早期网页。(随便说一句,事实上非 IE 浏览器也都是自带 Quirks Mode 渲染模式的。这里不展开,有兴趣可以自行查询“DTD”、“Quirks Mode”、“浏览器渲染模式”等关键词。)因此,对 IE 浏览器的开发工具来说,提供 IE5 模式没有任何成本;而且在渲染早期网页时,必然就会进入此内核,开发工具不得不包含它。 IE7 本质上是 IE6.1(至少我是这样认为的)。相比 IE6 而言,IE7 没有提供巨大的实质上的内核功能升级,更多地是在打补丁、修 bug。可以这样说,IE6 和 IE7 这两个版本的内核是严重同质化的;另一方面 IE6 的用户量本身也在自然萎缩。因此当 IE8 推出时,它的元标记和开发工具就放弃了 IE6 模式。 微软从 IE8 开始追赶其它符合 W3C 标准的浏览器,IE8 之后每个版本的内核之间都存在巨大差异;而且从 IE8 开始,IE 几乎以每年一个版本的速度在发布,目前已经发布至 IE11,由于 IE 本身没有自动升级的功能,这使得多版本共存的状况会长期存在。这样看来,在最新 IE 版本的开发工具中就不得不包含每个过往版本的内核了。
标签:
原文地址:http://www.cnblogs.com/myFourLeaf/p/5431348.html