【问题标题】:Webpage rendering differently IE8/Vista versus IE8/Win7 - what to try nextIE8/Vista 与 IE8/Win7 的网页呈现方式不同 - 下一步该尝试什么
【发布时间】:2011-06-23 05:56:05
【问题描述】:

我的网站建立在 wordpress 之上,编码为 XHTML 1.0 strict 和 CSS3。它验证除了未包含 CDATA 的脚本标记、未封闭的
标记以及在 jquery-ui.css 中找到的那些标记

该站点位于 www.example.com 域上,而开发站点位于 www-dev.exampledev.net 上。两个安装具有相同的代码。

在 Win7 上的 IE8 上,两个站点对 www 和 www-dev 站点的呈现相同..

虽然 IE8 在 Vista 上的 www-dev 站点可以正确呈现,但 www 站点在主页面导航的位置上存在问题 - 存在不应该存在的间隙。

我无法访问 IE8 Vista 框,因此我无法使用 IE 等效的 FF 网站管理员工具轻松查看代码

关于如何处理它的任何建议?我想知道它是否与这个问题不同:

Strange rendering issue occurring in IE8 only

【问题讨论】:

  • 如果它没有被验证为 XHTML(即使只是那几个小位),那么你不应该指定 strict doctype。请改用 transitional 文档类型。 (它不会产生任何实际差异,但它是更好的做法)

标签: css internet-explorer-8


【解决方案1】:

我的猜测是您的 IE8 副本之一正在进入 IE7 兼容模式。

您所描述的症状是典型的——具有相同代码的相同站点在 IE8 的不同副本中或在不同位置托管时表现不同。

IE8(和 IE9)有一个烦人的小功能,它会导致它在不通知您的情况下进入兼容模式,并且仅适用于某些网站。

确定是否发生这种情况的方法是打开开发人员工具窗口(按 F12)。渲染模式显示在此窗口的顶部右侧。

在你测试过的所有组合中尝试这个,我猜你会发现至少其中一个报告它处于 IE7 兼容模式。

那么为什么 IE 会这样做呢?有一个配置设置,它告诉 IE8 使用“用于 Intranet 站点”的兼容模式。也就是说,本地网络上的站点。这背后的想法是,企业用户可能拥有为早期版本的 IE 设计且无法升级的 Intranet 应用程序。它允许他们在内部使用这些应用程序的同时升级 IE。这本来是一个好主意,但有两个错误:首先,所有这些公司都卡在 IE6 上,并且兼容模式仅适用于 IE7。其次,无论如何,兼容模式与真正的 IE7 并非 100% 相同;它有自己的错误和怪癖。所以有点自己的目标。但它就在那里,你需要知道它。

那么我们如何绕过它呢?第一个答案是关闭配置设置。遗憾的是,对于我们大多数人来说,我们无法向您的用户规定这一点,因此完整的解决方案是使用 Microsoft 专门为帮助开发人员解决此问题而发明的元标记。将以下内容添加到您的 HTML 标头中,问题应该会消失:

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

希望对您有所帮助。

【讨论】:

  • 谢谢 - 正是我在阅读此条目后的目标:我认为这与 hasLayout 边距折叠错误有关,请参阅:stackoverflow.com/questions/3178532/…
  • 只有当它进入 IE7 兼容模式时才会出现这种情况,因为它是一个 IE7 错误。所以我的下一个问题是——我如何阻止它这样做?立即测试。
  • 谢谢您——修复了我们的 IE8/Vista 神秘渲染问题。现在附上 IE7 HasLayout Collapsing Margins 错误。
【解决方案2】:

查看this,看看您是否使用了任何 IE8 中不可用的选择器等,然后我们可以找到 IE8 的解决方法:)

【讨论】:

  • 该站点在四分之三的 IE8 浏览器中按需要呈现 - 在目标域名和客户端 Win OS 版本的一种组合上始终无法按预期呈现。我怀疑它是否会像不受支持的选择器一样简单,但我会再看一看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-04
  • 2010-12-09
  • 2010-11-02
  • 2012-07-26
  • 2011-02-14
相关资源
最近更新 更多