• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
我的四片叶
博客园    首页    新随笔    联系   管理    订阅  订阅

ie兼容性问题 前传

相信经常使用 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 版本的开发工具中就不得不包含每个过往版本的内核了。

posted @ 2016-04-25 16:15  我的四片叶  阅读(105)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3