【问题标题】:How is IE7 any better than IE6?IE7 比 IE6 好在哪里?
【发布时间】:2011-02-14 21:58:37
【问题描述】:

在 Web 开发社区中,您经常听到有人抱怨为 IE6 开发。但是,如果您使用像 jQuery 这样强大的 JavaScript 框架进行开发,那么为 IE6 开发与为 IE7 开发有什么不同吗?

【问题讨论】:

  • JQuery 无助于解决你的 CSS 问题..
  • 在我们的项目中,我们不支持ie6。考虑到它已经死了。

标签: javascript css internet-explorer-6 internet-explorer-7


【解决方案1】:
  • 它可以正确显示 alpha 通道 PNG。
  • 盒子尺寸的计算与标准相差不远。
  • 渲染和 JavaScript 性能实际上允许您做一些花哨的事情,而不会时不时地冻结用户的机器。
  • 一些安全问题已得到解决。

相对于其他浏览器,它根本没有任何改进,因为其他浏览器在同一时间取得了更大的进步。它仍然是主要浏览器中最差的,也是开发人员的痛点。

【讨论】:

  • @Delan - 不准确之处在于用一句话总结了您发布的 wiki 页面。该列表中的大多数 IE 漏洞是针对 IE6 的 463,这是来自 2000 年的一份报告,并没有说明今天仍然存在哪些漏洞。
  • @Delan - 我并不是说所有问题都已解决。但有些问题实际上得到了解决。毫无疑问,IE7 和 8 仍然是一团糟。
  • @Delan - 另外,问题是“什么比 IE6 更好?”而不是“什么还坏了?”
  • @Delan 您会注意到这是 IE 6 和 7 之间的比较,而不是 IE 和其他制造商的比较。从 IE6 到 IE 7,性能显着提升。
【解决方案2】:

IE7 支持 png 透明度,这对维护网站的图形资源有很大帮助。

【讨论】:

    【解决方案3】:

    我会补充几个没有列出的点:

    1. CSS 宽度严格遵守: IE7 在标准合规模式下严格解释 CSS 中的width 样式。在 IE6 中,如果您的子元素的 width 大于父元素,它通常会忽略父元素的 width 声明并扩展以适应子元素,通常需要对 overflow: hidden 进行 hack 以确保父级没有扩展。

      这主要是一件好事,但不幸的是引入了许多其他怪癖,例如<table style="width: 100%"> 在 CSS overflow 设置为 overflow: autoscroll 的滚动 DIV 中会将表格扩展到滚动 DIV 的宽度包括垂直滚动条的宽度表格将被右侧的滚动条截断。

    2. 禁用 DirectX 过滤器的 Cleartype: IE7 禁用具有 DirectX 过滤器(如 alpha 透明度和渐变)的元素的 cleartype(LCD 显示器上的字体平滑)。这在某些方面很好,因为 cleartype 使带有过滤器的元素,特别是粗体的元素非常模糊/模糊,但它很糟糕,因为它现在在 LCD 上呈现块状和锯齿状的文本。

      IE7 我想现在也支持alpha: 1.0filter: alpha(opacity=100)

    3. SELECT z-index bug 已修复: IE7 修复了 SELECT 元素具有无限 z-index 并且始终位于其他元素之上的错​​误,除非您在两者之间放置 IFRAME SELECT 和要在其上方显示的元素。这是菜单等的问题。

    4. CSS 伪类改进: :hover 和其他一些类似的 CSS 状态现在在超链接之外得到支持。

    5. 性能未必提高: IE7 在其 VML 引擎中引入了许多错误,并且在 IE8 中,VML 现在在标准遵从模式下比 IE7 慢 10 倍,所以它并不完全好。此外,我的测试用例表明,在 IE7 的标准合规模式下,在鼠标事件中查找 offsetLeftoffsetTop 在我的 Web 应用程序中也会慢 10 倍左右。

      IE 处于 quirks 模式,但在整个 IE6、7+8 中,VML 和 offsetLeft/Top 的性能大致相同。我在 IE7 标准遵从模式下的经验是,它实际上比 IE6 中的标准遵从模式要慢得多,尽管它肯定更加兼容。

      我认为这有点像一把双刃剑,因为 原始 JavaScript 性能确实有所提高,因此使用数组方法和 for loops 等事情确实有所提高,尽管我认为渲染引擎并且许多相关的 DOM 方法在 IE7+ 的标准遵从模式下变得慢得多。

    【讨论】:

      【解决方案4】:

      IMO,IE6 和 IE7 之间有天壤之别。

      • IE7 支持内置 XMLHTTP,而在 IE6 中则需要 ActiveX 控件。
      • IE7 支持几个额外的伪类
      • IE7 修复了 z 顺序和缩放的一些问题。
      • IE7 修复了“一些”盒子模型问题。
      • IE7 添加了对> 子选择器的支持
      • IE7 增加了对相邻 (+) 选择器的支持
      • PNG 透明度支持

      【讨论】:

      • XMLHttpRequest 对象的 IE7 实现是really bad,例如 jQuery 等一些库,prefer to use ActiveXObject 如果可用,只是为了避免它...
      • @CMS - 尝试为在 IE6 上标准化且不允许 ActiveX 控件的公司构建启用 AJAX 的站点。对我自己来说,内置它简直是天赐良机,因为这意味着我可以真正使用 AJAX。
      【解决方案5】:

      我认为 IE7 的大部分改进都是基于性能 (javascript) 并试图更接近 CSS 的标准合规性。

      在我的脑海中,这些是我记得的一些主要改进:

      • 修复了双页边距错误
      • 修复了盒子模型和定位继承的许多问题
      • 在浏览器中包含开发者工具栏(不是错误修复,但对我来说很大)
      • 正如其他人所指出的,正确的 PNG 处理

      与 IE6 相比,它是一个更好的浏览器,当你将它与今天的其他浏览器相比时,并没有那么多。

      【讨论】:

        【解决方案6】:

        几乎没有;就 IE7 在标准合规性方面的收益而言,它可以忽略不计。直到今天,所有 Internet Explorer 版本,包括 IE8,在 JavaScript、CSS 和 DOM 实现方面都有可怕的中断。您用于 IE6 的大多数 hack 仍然适用于更高版本。然而,从好的方面来说,IE9 正在形成相当不错的状态,并且已经取得了很大的进步(我从没想过我会真的这么说)。

        该规范与 Firefox 和 Chrome 等其他浏览器在实施上的差距和差异要小得多。

        我会推荐Mark Wilton-Jones's有关 IE 的众多缺陷的文章以获取更多信息。

        【讨论】:

        • 我真的希望 IE9 变得更好,但是 IE9 平台预览版真的让我很失望,许多旧的错误和与 ECMA-262 标准的 JScript 偏差仍然存在,而且它几乎没有新的 ECMAScript 5th Ed .标准...
        • 与 IE 以前的改进水平相比,它是主要的。与其他浏览器每天的改进相比,这不算什么。
        • 另一个错误链接,该文章将 IE7 测试版作为最新版本进行讨论。我同意你要去的地方,但如果你要包括参考资料,请尝试一些更可信和最新的东西。
        • 我见过的大多数网页设计师似乎都不同意你的观点。 IE 7 仍然很糟糕,但在 6 上是一个巨大的改进,旨在与 Netscape Communicator 竞争。您似乎对 IE 有意识形态上的不满,如果仍然存在缺陷,您会忽略改进,并相信任何对此有负面看法的消息来源。
        • Chuck,我相信您对我的回答的看法是错误的。 “IE9 正在变得相当好”证明我对 IE 的改进持开放态度(如果它们确实改进了,它们最终会改进)。
        【解决方案7】:

        Javascript 和 CSS 框架最大限度地减少了 IE6 造成的损坏,但 IE6 和其他浏览器之间仍然存在许多错误和不一致。

        IE7 比 IE6 好,但仅此而已。

        【讨论】:

          【解决方案8】:

          就个人而言,IE6 最烦人的地方是它缺乏 PNG 透明度。这导致需要对图像使用 AlphaImageLoader。这意味着引入了它自己的错误/无能。例如使用 AlphaImageLoader 的透明背景不能重复。

          此外,还存在诸如 double margin 错误、缺少对 min-height 和 min-width 的支持、为浮动元素添加额外换行符、缺少 css selectors 等错误。

          【讨论】:

            猜你喜欢
            • 2016-04-21
            • 2020-02-07
            • 2022-12-31
            • 1970-01-01
            • 2011-01-30
            • 2011-11-26
            • 2011-02-11
            • 1970-01-01
            相关资源
            最近更新 更多