2009-10-30 70 views
11

我正在研究一个页面,当我加载到IE8并查看开发人员工具时,它告诉我页面默认为怪癖模式。为什么我在IE8中触发怪癖模式?

我有一个严格的DTD:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

我甚至说干就干,把在明确的标准切换,虽然我不认为我需要:

<meta http-equiv="X-UA-Compatible" content="IE=8" /> 

我不明白为什么页面默认不是IE8标准?

我唯一能想到的就是要进入这个页面,我首先必须登录到一个应用程序,我必须经过的第一个页面是旧的怪异模式页面。 IE决定在服务器级使用哪种模式,还是应该逐页决定?

谢谢!

+0

您尝试关闭所有的IE8窗口并再次加载? – Jason 2009-10-31 00:03:20

+0

这解决了我的怪癖模式问题:http://stackoverflow.com/questions/6294301/dreamweaver-causing-quirks-mode-in-internet-explorer – rtpHarry 2012-06-26 21:12:57

回答

22

IE是否决定哪些模式在服务器级别

一般不使用,没有。 compatibility view list存在丑陋,这是特定于站点的,但只会引发您回到IE7风格的标准模式,而不是IE5.5风格的怪癖模式。

只要该DOCTYPE是页面上的第一件东西,您的代码看起来没问题。如果在doctype之前有评论,PI,XML声明(在IE8之前)或任何非空白文本内容,IE将被强制为document.compatMode= 'BackCompat'。如果一个控制字符在你的文本编辑器中看不到,那可以做到。

示例问题页面?

+3

你明白了!问题在于doctype声明并非绝对的第一件事。 谢谢! – 2009-11-02 18:59:48

+0

在我的情况下,我有一些会话和一些标题重定向,但如果你回声后的代码,它将工作:'回声'<!DOCTYPE html PUBLIC“ -// W3C// DTD XHTML 1.0 Transitional // EN”“http: //www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>';'。你可以使用任何其他的'doctype' – Patrioticcow 2011-08-31 21:35:25