【问题标题】:Why is the site running in IE quirks mode?为什么网站以 IE 怪癖模式运行?
【发布时间】:2011-07-01 03:08:52
【问题描述】:

我有一个网站:http://www.sucramma.dk 当我在 FF、Chrome 或 Safari 中时,网站会按原样显示,但在 IE 中,网站是左对齐的,并且运行的是怪癖模式。为什么?文档类型已设置!

【问题讨论】:

  • 你怎么知道它处于怪癖模式?
  • IE 没有称为“怪癖模式”的模式。您的意思是说“兼容性视图”吗? IE 9 RC 并没有说它在兼容性视图中呈现您的网站。
  • @In silico:他的意思是en.wikipedia.org/wiki/Quirks_mode
  • @Eineki:我知道 OP 的意思。我是说 IE 没有所谓的“怪癖模式”,而是称为“兼容性视图”。
  • @Insilico 是的,IE has quirks mode.

标签: html internet-explorer byte-order-mark browser-bugs


【解决方案1】:

http://validator.w3.org/check?uri=www.sucramma.dk&charset=%28detect+automatically%29&doctype=Inline&group=0

验证失败,见第一个错误:

错误第 1 行,第 1 列:在没有先查看文档类型的情况下找到非空格字符。预期。

文档类型不足以强制浏览器进入标准模式。当遇到错误时,渲染会退回到 quirks 模式。

更正错误并重试,您应该完成了

【讨论】:

  • 非常非常好,我认为除了验证者之外没有其他人可以发现那个神秘人物。 +1
  • 是的,但奇怪的是在文档类型之前没有设置字符,也没有空格:S - 不知道为什么验证会这样说
  • @nickycdk - 使用 vim 进行编辑或复制以 <!DOCTYPE HTML> 开头的所有内容并创建新文件并重新保存。
  • @nickycdk:是bom,通常编辑会忽略它,不显示它。对我来说,这是一种众所周知的 utf-8 瘟疫
  • 无法再分析问题页面包含的内容,但它可能以换行符和 U+FEFF 字符开头。至少这样的组合会触发提到的错误消息。
【解决方案2】:

我遇到了这个问题,我将其更改为 <!DOCTYPE html> 并修复了它

【讨论】:

    【解决方案3】:

    这是一个字节顺序标记,对大多数文本编辑器来说是不可见的。尝试使用 VIM 并杀死它,或者以某种方式找到不同的文本编辑器并杀死 <!DOCTYPE html> 之前的所有内容

    您可以简单地将<!DOCTYPE HTML> 及其下方的所有内容复制到一个新文件中并保存,这意味着您不会复制它之前的 BOM 来解决此问题;我遇到过很多次了。

    【讨论】:

    • 是你的第一次编辑,是的,Eineki 通过验证器运行它并发现了一些东西。
    • doctype前没有空格,我已经检查了3个不同的编辑器,并且不能删除任何空格:(
    • 使用 VIM,你会看到一些东西。它与BOM有关。
    • @nick 你是如何将文件上传到服务器的?你是如何做出改变的?
    • 我有一种痒痒的感觉,它是 BOM ......确实是 :)
    【解决方案4】:

    尝试使用完整的文档类型声明(开头没有空格)

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

    【讨论】:

    • &lt;!DOCTYPE html&gt; 是 HTML5 doctype 声明并且是有效的。
    • 不能用这个,我在运行html5
    【解决方案5】:

    该站点没有 DOCTYPE,因此它将以 quirks 模式运行,因为它不知道要使用什么 DTD...

    编辑:正如 BoltClock 所指出的,它确实有一个 DOCTYPE(我还没有达到 HTML5 的水平)。我很抱歉。

    在此处阅读更多信息:http://www.w3schools.com/tags/tag_doctype.asp

    【讨论】:

    • 呃,它确实有一个文档类型。访问该站点,并查看源代码。
    • @Bolt 据我所知&lt;!DOCTYPE html&gt; 无效。
    • @Shadow Wizard:它是 HTML5 doctype,我相信 IE 将其识别为 doctype。
    • @BoltClock 是的,那是我没有跟上 HTML5 的速度,呵呵!
    • IE应该能够识别html5 doctype
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多