在 IE8 中,微软引入了一种称为兼容模式的新模式,它可以像 IE7 一样呈现页面。
您可以在 stackoverflow.com 的地址栏旁边看到此按钮。但是当您访问 google.com/live.com 时,您不会看到兼容模式按钮。我们如何确保页面不向用户显示此按钮?
在 IE8 中,微软引入了一种称为兼容模式的新模式,它可以像 IE7 一样呈现页面。
您可以在 stackoverflow.com 的地址栏旁边看到此按钮。但是当您访问 google.com/live.com 时,您不会看到兼容模式按钮。我们如何确保页面不向用户显示此按钮?
简短的回答:
把它放在你的 head 标签中,告诉浏览器你的页面在 IE 8 中工作:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
同样根据 Jon Hadleys 的评论,为了确保使用最新的(不仅仅是 IE8)渲染引擎,您可以使用以下内容:
<meta http-equiv="X-UA-Compatible" content="IE=edge">
从这里:
有时不显示兼容性视图按钮。
该按钮位于“停止”和“刷新”按钮旁边的地址栏上。在某些情况下,用户没有采取任何操作,因此“兼容性视图”按钮不会显示:
如果您正在查看内部到 Internet Explorer 页面(例如 about:InPrivate)
如果您正在查看通过使用版本控制标记/HTTP 标头声明它已为 Internet Explorer 8“准备好”的页面(此标记是否触发 Quirks、IE7 标准或 IE8 标准无关紧要,按钮将不会不显示)
如果您正在查看 Intranet 页面并且选中了“在兼容性视图中显示 Intranet 站点”复选框 如果您正在查看任何网页并且选中了“在兼容性视图中显示所有网站”复选框
如果您正在查看 Microsoft 提供的兼容性视图更新列表中包含的网页,并且您选中了“包括 Microsoft 更新的网站列表”复选框
如果您通过开发者工具栏切换了“文档模式”或“浏览器模式”设置
因此,您可能正在使用该博客文章和此处详细描述的版本控制标记/HTTP 标头。
如果启用了“在兼容性视图中显示 Intranet 站点”或“在兼容性视图中显示所有网站”设置(位于工具 -> 兼容性视图设置下)(因为它们与正在查看的网站相关),那么无论您在文档的 HTML,页面将始终被放入某种形式的兼容性视图中。
这意味着,即使在文档中,您仍然会注意到该页面已进入兼容性视图,不幸的是,除了禁用这些设置之外,您无能为力。
根据这篇关于兼容性视图的综合 MSDN 文章,以下列表描述了启用兼容性视图的不同方法:
要避免/禁用/覆盖兼容性视图,您必须执行与上面建议的操作相反的操作。
兼容性视图列表是 Microsoft 维护的 XML 文件。
要从兼容性视图列表中删除您的站点(或对从列表中删除您的站点提出异议),请让整个站点所有者验证域站点是否出现在兼容性视图列表中。如果是,请向 iepo@microsoft.com 发送包含以下信息的电子邮件:
所有者名称 公司名称 公司名称 街道地址 电子邮件地址 电话号码 网站地址
Microsoft 将在下一次计划更新时审查提供的信息并从兼容性视图列表中删除您的站点。
下面的链接在 IE 中运行良好,并且可以正确显示菜单栏 http://line25.com/wp-content/uploads/2012/css-menu/demo/index.html
但是托管在 Intranet 上的相同内容,所有链接都显示在另一个下方,而不是菜单栏。地址栏中未显示兼容性视图按钮。
进行以下更改后,菜单栏正确显示,地址栏中显示兼容性视图按钮。
工具->兼容性视图设置->取消选中“在兼容性视图中显示 Intranet 站点”
非常感谢您提供宝贵的意见
我遇到了兼容性视图的问题,结果发现我的一些 PHP 文件以 UTF-8 字符编码保存,我猜这让 IE 感到困惑。大多数站点文件保存在代码页 1252 中。
现在,我将所有文件设置为另存为“西欧 (Windows) - 代码页 1252”,然后我的显示问题就消失了。
这里的教训是,不要混合你的字符编码。