解决两个IE6布局错误

时间:2008-11-25 20:22:00

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

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

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

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

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

如何让这些错误相互配合? (注意:远程格式化仍在运行IE6的用户的硬盘驱动器不是一个选项,令我沮丧。)

编辑: Here's a second test case,显示我在应用职位时发生的情况:相对于内容。第一个错误(#intent-header的'固定'外观)已经解决,但它会导致z-index错误进入并弄乱模态背景。

4 个答案:

答案 0 :(得分:0)

如何避免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/

答案 1 :(得分:0)

实施我们在Ra-Ajax.org完成的工作(提示,使用IE浏览网站;)

说真的,甚至prototype.js和37signals现在已经停止支持IE6了,我认为现在是时候继续......

答案 2 :(得分:0)

我不认为使用图书馆是一个太糟糕的惩罚,以尽量减少我处理荒谬的IE漏洞的时间。

我们最终使用了bgiframe jquery插件(http://plugins.jquery.com/project/bgiframe)。它在库中实现iframe“shield”技术。我认为让IE6用户不得不多花一点库下载(实际上并不是那么多)所以我不必为IE6而疯狂,因为bleedthru是值得的。

P.S。我认为全世界的网络开发者应该启动集体诉讼,迫使微软以太网为IE6和IE7提供等效的firebug,确保所有IE6和IE7实例都升级到标准,或者删除所有版本的IE6和IE7互联网上的所有计算机,或拯救所有网络开发人员,每人因为他们的痛苦而遭受100美元的付款!

答案 3 :(得分:-1)

虽然它可能是错误的解决方案,并且可能有点矫枉过正,但jQuery可以做类似于此的模态弹出窗口并且可以在IE6上运行。我可能会因为这么简单的答案而被投票,但在重新发明轮子之前,仍然值得考虑,或者至少要考虑其他解决方案。