【问题标题】:Compatibility Mode button still there even with IE=edge即使使用 IE=edge,兼容模式按钮仍然存在
【发布时间】:2013-12-17 16:58:05
【问题描述】:

根据 HTML5 Boilerplate,我希望以下包含的 meta 标记可以从 IE8 中删除“兼容模式”按钮:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

但是当我在 IE8 中查看我的网站时,兼容模式按钮仍然存在。我希望我的网站在 IE8 及更高版本中运行,并且我不希望访问者的 IE 浏览器显示兼容模式按钮。问题是如果有人不小心点击了它并在 IE8 浏览器中打开了兼容模式,那么由于奇怪的 IE7 怪癖,我的页面无法正确呈现。

那么我该如何关闭按钮呢?

编辑:

这是我head标签的开头:

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title></title>

与默认的 H5BP 相同。我也尝试过移动兼容。 mode 元标记成为&lt;head&gt; 中的第一个标记,没有区别。

【问题讨论】:

  • 您是否尝试将其添加为响应标头而不是元标记?我们还能看到你完整的 HTML 头吗?我似乎记得读过一些关于这个需要先出现的东西。
  • Here's a link 以一般文档作为参考。

标签: html css internet-explorer internet-explorer-8 ie8-compatibility-mode


【解决方案1】:

这已经持续了很长时间(https://github.com/h5bp/html5-boilerplate/issues/1187)。我使用它(根据您的需要修改 doctype 下面的类):

http://nicolasgallagher.com/better-conditional-classnames-for-hack-free-css/

<!--[if IE ]><![endif]-->
<!doctype html>
<!--[if IE 8 ]> <html class="no-js lt-ie9 ie8" lang="en"> <![endif]-->
<!--[if IE 9 ]> <html class="no-js lt-ie10 ie9" lang="en"> <![endif]-->
<!--[if (gte IE 10)|!(IE)]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>

【讨论】:

  • 感谢您的回复。实际上,我将所有 IE 条件代码移动到 &lt;body&gt; 标签而不是 HTML 标签,这也解决了问题。
  • 是的,我希望我能做到,但我的 CMS 使用正文,我不想混淆使用它的人。
  • 上述条件 cmets 修复了 H5BP cmets 中的原始错误有什么不同?
  • 哇反应快。谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-07-23
  • 2016-08-11
  • 1970-01-01
  • 2011-09-03
  • 2011-05-15
  • 2013-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多