fir*_*dev 121 windows internet-explorer windows-8 internet-explorer-10
在微软的网站上,他们声称简单的doctype声明就足够了.但即使是像这样简短的文档又回归到IE7模式:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
Dan*_*tle 243
Internet Explorer假设大多数网页都是针对早期版本的IE编写的,并查看doctype,meta标签和HTML以确定最佳兼容模式(有时不正确).即使使用HTML5 doctype,如果它是一个Intranet站点,IE仍会将您的网站置于兼容模式.
为确保您的网站始终使用最新的标准模式,您可以确保Display intranet sites in Compatibly
已关闭.但是,您必须在Web服务器本地的每台计算机上执行此操作(请参阅下文).
或者更好,您可以使用X-UA-Compatible标头将其从服务器关闭.重要的是要注意使用元标记不起作用!.
<!-- Doesn't always work! -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Run Code Online (Sandbox Code Playgroud)
在整个MSDN中,提到使用主机头或元标记应该覆盖甚至intranet sites
.Internet Explorer 8中的了解兼容模式的文章说明如下.
大量内部业务网站针对Internet Explorer 7进行了优化,因此此默认异常保留了该兼容性....再次,如果使用Meta标签或http标头为文档设置兼容模式,它将覆盖这些设置.
但是,实际上这不起作用,使用主机头是唯一有效的选项.本文的评论部分还展示了这个确切问题的大量例子.
使用Meta标签还有其他几个问题,例如,如果标签不直接位于<head>
标签下或者前面有太多数据(4k),则忽略标签.它还可能触发在某些IE版本中重新分析文档,这将减慢渲染速度.您可以在MSDN文章" 最佳实践:按顺序获取HEAD"中阅读有关这些问题的更多信息.
添加X-UA兼容标头
如果您使用的是.net和IIS,则可以将其添加到web.config中,您也可以通过编程方式执行此操作:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
如果您没有使用IIS,那么很容易用任何语言进行操作,例如这里是如何在php中执行的:
header('X-UA-Compatible: IE=edge');
Run Code Online (Sandbox Code Playgroud)
只要X-UA-Compatible标头与html5 doctype一起出现,网站将始终以最新的标准模式运行.
关闭兼容性视图关闭兼容性视图
可能仍然有用.要Display all intranet sites in compatibility view
在兼容性视图设置中取消选中.
您可以通过点击alt
获取菜单来实现此目的
编辑 此答案也适用于IE9
JGi*_*tin 25
这对我有用..
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Run Code Online (Sandbox Code Playgroud)
Jeo*_*uan 10
尝试将以下标记添加到头部
<meta http-equiv="X-UA-Compatible" content="IE=11,IE=10,IE=9,IE=8" />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
99065 次 |
最近记录: |