为什么我在IE8中触发怪癖模式?

Tim*_*ner 11 quirks-mode internet-explorer-8

我正在开发一个页面,当我加载到IE8并查看开发人员工具时,它告诉我页面默认是怪癖模式.

我有一个严格的DTD:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Run Code Online (Sandbox Code Playgroud)

我甚至继续进行明确的标准转换,但我认为我不需要:

<meta http-equiv="X-UA-Compatible" content="IE=8" />
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么页面默认不是IE8标准?

我唯一能想到的是,为了进入这个页面,我首先必须登录到一个应用程序,我必须遍历的第一个页面是旧的怪癖模式页面.IE是否决定在服务器级别使用哪种模式,还是应该逐页决定?

谢谢!

bob*_*nce 22

IE是否决定在服务器级别使用哪种模式

不一般,没有.兼容性视图列表是丑陋的,它是特定于站点的,但只会让你回到IE7风格的标准模式,而不是IE5.5风格的Quirks-Mode.

您的代码看起来没问题,只要该DOCTYPE是页面上的第一件事.document.compatMode= 'BackCompat'如果在doctype之前有注释,PI,XML声明(在IE8之前)或任何非空白文本内容,IE将被强制使用.如果一个控制角色偷偷摸摸,你无法在文本编辑器中看到,那就可以做到.

示例问题页面?

  • 你说对了!问题是doctype声明并非绝对是第一件事.谢谢! (3认同)