【问题标题】:Cons of using IE compatibility mode [duplicate]使用 IE 兼容模式的缺点 [重复]
【发布时间】:2012-07-13 22:27:42
【问题描述】:

可能重复:
Cons of using Internet Explorer's Compatibility Mode

我在 IE 中浏览我的网站,然后像往常一样将其上传到主机,但我注意到一些奇怪的东西,例如,在某处显示的完全一样的项目(在部分视图中提交按钮),有些地方没有......我知道的最多IE 中的技巧,但我从未见过这样的东西,但是当我在 IE 8 设置中设置兼容模式时,一切正常,我使用的是 HTML5。所以我想从代码中触发它,这个声明会让 IE 进入兼容模式吗?

<meta http-equiv=“X-UA-Compatible” content=“IE=7; IE=8” />

如果是这样,使用这个命令有什么缺点吗?

【问题讨论】:

  • @Nathan 那个问题是关于 javascript 问题的,我想知道 css 问题。
  • 您确定您的内容使用了正确的 CSS 吗? Html5/CSS3 在 IE7/8 中呈现?没有一个版本比 IE9 更好地支持 Html5... 强制非兼容模式很有意义,但对于 HTML5 内容强制使用 IE7/8 听起来完全错误。
  • @Alexei Levenkov 好吧,我的代码甚至可以在 ie7 上运行,我使用 html5 shiv 和 css PIE for CSS3
  • 也许你应该从问这个问题开始。当以后可用并且应该能够按原样呈现内容时,强制使用较旧的渲染引擎对我来说仍然没有意义。 IE。即使是 IE10 也必须以 IE8 模式呈现您的网站...

标签: c# asp.net-mvc html internet-explorer


【解决方案1】:

这会导致高于 7(或 8)的版本(例如 IE9(或 8))呈现为旧版本。这样做的缺点是您失去了新版本提供的功能,从而降低了访问者的潜在体验质量。

通常,当您没有时间让现有网站在对网络更友好的 IE 版本上正确呈现时,您会使用 X-UA-Compatible 元标记。

【讨论】:

  • 我目前正在IE8上进行测试,meta X-UA-Compatible的描述说它将使用最高声明模式,在我的情况下是IE8?还是我错了?
  • 根据您的声明,IE8 及更高版本将呈现为 IE8,IE7 将呈现为 IE7。
  • 感谢您的澄清,这回答了我的问题,但我想这将成为一个谜,为什么我的东西在兼容模式下正确呈现。
  • 您的网站可能会正确呈现,因为 IE7 和 IE8 有渲染怪癖,这些怪癖是在最初对网站进行编程时考虑的。这些怪癖在 IE9 原生渲染中可能并不明显。
【解决方案2】:

我知道的缺点包括:

  1. 您将失去更新的 IE JavaScript 功能。例如,如果您将其设置回低于 IE8 的任何值,您将丢失本机 JSON,因为它是由 IE8 引入的。然后你必须在你的页面中包含 json2.js(或类似的)才能使用 JSON。

  2. 它与旧的 IE 并不完全相同。具有 IE8 兼容模式的 IE9 与真正的 IE8 并不完全相同。有细微的差别。不断改进你的页面,总有一天你会发现你的东西在 IE8 兼容模式和真正的 IE8 下显示的方式不同。

除非您只是需要快速修复并且以后不需要修改此页面,否则请尽量避免在兼容模式下使用。

【讨论】:

  • 我还包括了 json2 以支持 IE7 上的 SignalR,但鉴于答案,我宁愿创建另一个 css 在 IE 上有条件地工作,然后使用兼容模式。以正确的方式修复它似乎真的很值得!
猜你喜欢
  • 2011-09-01
  • 2014-08-01
  • 2011-04-26
  • 2011-10-02
  • 2013-10-02
  • 2014-05-01
  • 1970-01-01
  • 2013-09-14
  • 1970-01-01
相关资源
最近更新 更多