为什么IE8说页面默认是怪癖模式?

时间:2012-02-22 16:25:17

标签: internet-explorer-8

以下是我使用的doctype:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

4 个答案:

答案 0 :(得分:8)

如果您在 DOCTYPE之前有内容(可能是HTML评论),就会发生这种情况。 IE8中的空格应该没问题 - 尽管我认为这甚至会导致IE6出现问题。

(在IE6中,在DOCTYPE触发怪癖模式之前的XML声明 - 这在IE7中得到修复,但看起来DOCTYPE之前的其他内容仍会触发这一点。)

答案 1 :(得分:2)

不好笑,我相信你已经检查了这个,但是......

您是否尝试过按F12进入IE Developer Console。是否可能将“文档模式”或“浏览器模式”设置为“怪癖模式”

请原谅我,如果情况不是这样......我之前只是犯了这种愚蠢行为......

答案 2 :(得分:1)

听起来你正在处理一个内联网页面IE8 and IE9 treat differently。如果您的页面被认为是在Intranet区域中,IE8将默认为兼容模式,可能会使您的页面稍微加倍。

您可以使用X-UA-Compatible元元素来解决这个问题,但我自己没有对此进行过测试。

答案 3 :(得分:1)

此页面在“为什么页面触发ie8怪癖模式”的谷歌排名中很高,所以我将发布我的2个发现(通过痛苦的故障排除体验):

1)如果你一般使用php,页面将会分离怪癖模式,但是在那个特定的页面上说你根本没有<html>部分中的任何php代码,但是为了兼容性,你希望写成空开头的<?php ?>标签。现在,比方说,您希望“最小化”该代码并删除其间的所有空白区域,因此您写道:

<?php?>

这将触发IE8怪癖模式,因为在<!DOCTYPE html>之前,你现在将在IE8中有一个额外的行:

<!-- -->

并在Chrome 34.x中:

<!--?php?-->

常见,但致命的错误。只需加上

<?php ?>

(有空间)是安全的。

2)第二个原因确实很难发现。如果您使用UTF-8作为文档并使用Notepad ++编辑它们,您很可能将字符编码设置为纯UTF-8(Notepad ++&gt; Encoding&gt; UTF-8编码),并且您可能会触发IE8 Quirks模式!

现在,解决方案非常简单:使用Notepad ++只需选择Encoding&gt;使用UTF-8转换而不使用BOM。

Quirks Mode再次消失了!

我花了一些时间来捕捉所有这些,努力找到CSS中的bug,这些都与CSS无关!