2009-08-07 143 views
5

IE8是否运行在像IE6/7之类的怪癖模式?IE8和怪癖模式

我有了一些真正怪异的代码的网页。内容以填充和负边距为中心。

它工作在正确IE6/7和其他浏览器但在IE8内容区域是一半宽和不居中(标志怪异模式)。

源代码具有DOCTYPE前三个空白行。我知道这会让IE6进入怪癖模式。它会不会影响IE8?

我没有访问源代码,所以我不能删除那些行进行测试。

+0

保存在你的电脑和编辑源代码。看看是否对这些空白线条进行分条。应该像瘟疫一样避免怪癖模式。 – voyager

+1

当您在页面上不确定时,只需将以下内容粘贴到浏览器窗口中即可:javascript:alert(document.compatMode);这应该告诉你当前的模式。 – Steerpike

+0

S /浏览器窗口/ broswer地址栏 – Steerpike

回答

5

运行,可以发现here几个简单的测试,似乎表明空行不应该抛出IE8到Quirks模式(这是不同于兼容模式,每个人似乎都会把它混淆)。

我写了一篇关于IE8/7 here不同模式令人难以置信地混淆的细目,我甚至没有在细分中包含怪癖模式。 Quirks模式的详细说明可以参见here(不是原始问题,但其他人可能会觉得它很有趣。)

+2

啊......他们的DOCTYPE是<!DOCTYPE HTML PUBLIC! “ - // W3C // DTD HTML 4.0过渡// EN”> 根据您的图表,这将引发IE8到怪癖模式。 – Emily

+0

正面向上:链接#2(令人难以置信地混淆IE8/7的不同模式)不再有效。 –

0

是的。 Internet Explorer的怪癖模式是IE5.5。当存在怪癖模式时,IE6/7/8切换回5.5。因此,它在IE6/7中工作正常,这不是怪癖模式。 IE8中有一个“兼容性视图”按钮来解决这个问题。尽管如此,这不是一个好的解决方案。你必须检查你的CSS代码。

+0

但不宜IE6/7在怪异模式也因为空行在DOCTYPE之前?它在兼容模式下看起来很好。它是在IE6中开发的,我认为它们以某种方式弥补了怪异模式,现在它正在试图遵循标准(或其中的一些标准)将IE8引入循环。 – Emily

+0

@Emily,不,它不会把IE8变成怪癖模式。您可以更改代码,以便在IE8中正确渲染或使用其兼容模式之一。它有6种模式,并且由于您的网站在6/7下工作良好,因此您可以添加以下标记: 在标准模式下强制IE8使用标准IE7指令。怪癖模式将是5.5。 – dalizard

0

IE8有哪些应该把页面的方式将IE7兼容模式。你有没有尝试在兼容模式下查看页面?

+0

页面在兼容模式下看起来很好。 – Emily

3

今天,我从XHTML 1.0(严格),以HTML5改变了我们的DOCTYPE。我在某个地方读过,即使IE浏览器还不能识别DOCTYPE,他们也会以符合标准的模式呈现网页。

当我在IE8检查,整个页面看起来失衡(我们有相当多的CSS和其他造型)。我花了一段时间才意识到CSS没有任何“错误”,甚至IE8也没有。但是,它以怪癖模式渲染。

无意中,我在这里发布的问题中找到了答案,特别是这条评论:“源代码在DOCTYPE之前有三个空行,我知道这会将IE6引入怪异模式,它是否也会影响IE8?

我不知道空白行,但是当我做出改变时,我曾使用javascript评论来“粘贴”我的旧DOCTYPE语句(这是在新的HTML5 DOCTYPE之上)。一旦我删除了这些行(可能包含一行或两行),我的出汗就停止了,并且IE8以符合标准的模式呈现。

+0

你刚刚为我节省了许多工作时间,剃刀放置@使用System.Web.Optimization高于Doctype和低,看,它击倒了IE8中的所有样式。我把它移到下面一行,它全部排序!谢谢! –