以下是我使用的doctype:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
答案 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无关!