文档模式IE7和IE8标准无法正确呈现

时间:2012-10-13 20:05:16

标签: html internet-explorer rendering

我试图弄清楚为什么我的网页无法正确呈现。

我注意到当我的页面显示“文档模式:IE7标准”或“文档模式:IE8标准”时,页面无法在浏览器中正确呈现。它似乎与页面导航有问题,如下所示:

Incorrect rendering

当我更改为“文档模式:IE9标准”时,页面显示如下:

Correct rendering

知道如何解决这个问题吗?谢谢。

2 个答案:

答案 0 :(得分:3)

您的代码显然使用了IE8或IE7不支持的一些CSS样式或其他浏览器功能。

你没有给我们任何代码,所以我无法确切地告诉你这些功能是什么,但是如果你需要支持这些旧浏览器,那么你需要解决这个问题。

第一件事:你提到你在IE9兼容模式下看到了这一点。如果您不需要支持IE7 / 8,则可以通过指定x-ua-compatible元标记来阻止IE9进入兼容模式,如下所示:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

这将强制IE以可用的最佳渲染模式运行。因此IE9将使用IE9标准模式,而不是兼容模式。

但是,如果您确实需要支持IE7和IE8,则需要执行以下操作之一:

  • 修复您的代码以使用浏览器。
  • 修复浏览器以使用您的代码。

如前所述,您尚未提供代码,因此我无法帮您解决第一点,但第二个选项可能值得考虑。

有大量的Javascript黑客旨在在旧版浏览器中模拟更新的浏览器功能 - 特别是对于IE。这些黑客被称为“polyfills”,你可以在这里找到相当全面的列表:https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills

如果您可以确定哪些浏览器功能正在破坏您的代码,您可以在代码中实现相关的polyfill,并希望事情会突然开始起作用。不同的polyfill以不同的方式工作,所以我不能在不知道更多细节的情况下提供更多的帮助,但是大多数都有足够的文档来帮助你开始。

最后,需要注意的一点是:如果您使用IE9的兼容模式测试您的网站是否在IE7 / 8中工作,请注意 - 兼容模式存在许多已知问题,导致它们无法正常工作与IE7或IE8的真实副本相同。你不能绝对肯定你的代码在这些浏览器中工作而没有在真实的东西中看到它。兼容模式不够好,无法确定。

希望有所帮助。

答案 1 :(得分:0)

每个版本的Internet Explorer对当时的标准都有完全不同的支持。一般来说,每个更高版本都有一个更好,更完整的当前标准的实现,然而,IE非常有名,缺少,不完整或不正确的标准实现。

当您更改显示设置以反映旧版本时,您也会失去更多当前版本的新支持。例如,IE7不支持CSS3功能,因此无法正确显示这些功能。

不要忘记能够切换到较旧的文档模式背后的想法是双重的。对于普通用户来说,能够正确地显示使用旧浏览器设计的页面(就像当前浏览器一样)。对于开发人员/网站管理员来说,测试对可能仍在运行旧版本浏览器的旧机器上的用户的支持。

另请注意,如果您需要更具体的帮助,那么您可能希望编辑代码或使用像JSFIDDLE.net这样的网站提供链接