【问题标题】:Work around two IE6 layout bugs解决两个 IE6 布局错误
【发布时间】:2010-09-24 00:57:34
【问题描述】:

我的网页存在两个 IE6 渲染错误。他们每个人都有解决方法,但不幸的是,这些解决方法彼此不兼容。

Here's a minimized test case。 Firefox/Safari 中的行为是期望/正确的行为。 IE7 未知,因为我现在无法访问它。

第一个错误:#content 有溢出:自动并包含一个相对定位的 div。 IE6 incorrectly gives the relatively-positioned div a 'fixed' appearance. 解决方法:设置位置:#content 上的相对位置。

第二个错误:页面有时会显示模式弹出窗口。弹出窗口和背景上的 z-index 设置得非常高,以阻止与它们后面的任何东西进行交互。这工作正常,直到我在 #content 上设置 position:relative,这使得 IE6 treat the z-index property completely wrong

我怎样才能让这些错误相互配合? (注意:远程格式化仍在运行 IE6 的用户的硬盘驱动器不是一种选择,这让我很沮丧。)

编辑: Here's a second test case 显示当我应用位置时会发生什么:相对于内容。第一个错误(#content-header 的“固定”外观)已解决,但它会导致 z-index 错误启动并弄乱模态背景。

【问题讨论】:

  • 仅供参考,第一个错误在 IE7 中的呈现与在 Windows 上的 FF3 中呈现的相同。无法查看第二个错误链接,因为我们的防火墙将该站点归类为“色情”:P

标签: css internet-explorer layout internet-explorer-6


【解决方案1】:

关于如何避免 ie6(及以下)一致性的大量问题,有无数种实现方式。唯一对我有用(甚至在很大程度上)是 Dean Edward 的解决方案。

尝试在主标题中插入以下行:

<!--[if lt IE 8]><script src="http://ie7-js.googlecode.com/svn/version/2.0(beta)/IE7.js" type="text/javascript"></script><![endif]-->

--看看它是如何从那里开始的(以及你仍然需要处理什么,因为它可能无法解决所有问题)。

脚本大小只有 30kb,并且只会在 ie6 和 ie7 中加载。

谷歌代码网址(显然)是http://code.google.com/p/ie7-js/

【讨论】:

    【解决方案2】:

    实现我们在Ra-Ajax.org 所做的类似操作(提示,使用 IE 访问该站点;)

    说真的,即使是prototype.js 和 37signals 现在也停止支持 IE6,我认为是时候继续前进了...

    【讨论】:

    • 这是我无法控制的。我正在为一个目前在 IE6 上标准化的组织创建一个 Intranet 应用程序(因为他们有其他 Intranet 应用程序在 IE6 之外无法运行)。我确实喜欢你在那里所做的,但我有点想,你知道,为我的工作获得报酬。 =)
    【解决方案3】:

    我不认为使用库来减少我处理荒谬的 IE 错误的时间是太糟糕的惩罚。

    我们最终使用了 bgiframe jquery 插件 (http://plugins.jquery.com/project/bgiframe)。它在库中实现了 iframe“屏蔽”技术。我认为让 IE6 用户必须有更多的库下载惩罚(实际上并没有那么多),这样我就不必为 IE6 流血而疯狂是值得的。

    附:我认为全世界的 Web 开发者应该发起集体诉讼,迫使微软以太为 IE6 和 IE7 提供 Firebug 等价物,确保所有 IE6 和 IE7 实例都升级到标准,或者从 IE6 和 IE7 中删除所有版本互联网上的所有计算机,或以每人 100 万美元的代价救助所有网络开发人员,以补偿他们的痛苦!

    【讨论】:

      【解决方案4】:

      虽然它可能是错误的解决方案,而且可能有点矫枉过正,但 jQuery 可以执行与此类似的模式弹出窗口,并且适用于 IE6。对于这样一个简单的答案,我可能会被否决,但在重新发明轮子之前,仍然值得考虑或至少看看其他解决方案。

      【讨论】:

      • 不幸的是,我无法使用 ASP.NET ModalPopupExtender,因为页面上有一些需要运行的服务器控件。能够在 jQuery 中做所有事情会让它变得更容易! :(
      猜你喜欢
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-29
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多