2

我们正在将网络应用程序转换为 IE8(现在客户端使用的是 IE6)。我们没有创建那个应用程序。我们只是对其进行修改和添加功能。当我使用 IE8 开发人员工具访问此应用程序中的大部分页面时,显示 IE 正在以 Quirks 模式运行。但有些页面在 Internet Explorer 8 标准模式下工作。此页面http://msdn.microsoft.com/en-us/library/dd565628(VS.85).aspx说:

“Quirks 模式:在呈现没有 doctype 或 Quirks doctype 的文档时,此行为与 Internet Explorer 的行为相匹配。”

但是我们所有的页面都定义了 DOCTYPE - !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd "(我不知道如何在此处输入尖括号,但它们存在于网页上。

谁能解释我为什么在显示所有定义了 DOCTYPE 的页面时 IE8 在 Quirks 和标准模式下都工作?或者也许给我看两个 IE8 在 Quirks 和标准模式下显示的页面示例?

4

2 回答 2

6

doctype 标记必须位于标记的首位,否则将被忽略。如果在 doctype 标记之前有 XML 声明标记,IE 将忽略 doctype。

如果 HTML 标记完全损坏,浏览器可能会退回到将其解释为标签汤而不是 HTML 文档,并以 Quirks 模式呈现。

使用W3C HTML 验证器检查代码是否存在任何严重错误。

于 2011-06-16T19:25:35.923 回答
0

尝试在 HEX 编辑器中查看您的 HTML。在 DOCTYPE 声明之前可能有一些奇怪的字符(通常是 3:ef bb bf)。在这种情况下,IE 也陷入了怪癖。以前发生在我身上,现在也在发生。

于 2013-03-27T14:38:46.033 回答