3

请我在这里澄清一些想法:

如果未指定文档类型,则会调用 Quirksmode。

从 localhost 提供服务时,无论文档类型如何,IE 似乎都会进入 quirksmode。请确认这一点,有人可以解释为什么会这样。

然而

当从 localhost 提供服务并且 IE 进入 quirksmode 时,无论文档类型如何,都可以通过在头部的第一行包含元标记来覆盖它

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

这对我不起作用......我的语法错误吗?

仅当从本地主机提供服务时,才会应用头部中的元数据?如果是这样,这是真的吗?

目前在 FF Chrome Opera 等中一切看起来都很好,无论是从本地主机还是通过网络提供服务。

但我只是在 IE 中获得了怪癖模式

我的文档类型是

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

最后charset和quirksmode之间有关系吗?

我一直在使用

<meta http-equiv="content-type" content="text/html; charset=utf-8" />       

在 apache 上将 apache 配置设置为默认为 UTF-8

4

4 回答 4

1

怪癖模式很古怪,你不应该依赖任何关于它的特定内容。触发它的情况是依赖于浏览器的,但是如果你看到了一个符合 XHTML 规范的 XHTML 文档类型来触发它,那么它可能是一个观察错误。您可能在文档类型之前有一些东西。关于 IE的魔法meta标签同上。

您可能有语法错误,但不是在发布的片段中。

或者这个问题可能是由于文档类型嗅探中的一些IE8 和 IE9 并发症引起的。

charset 和 Quirks Mode 之间没有关系。

于 2012-11-21T18:43:57.430 回答
0

I wanted to summarise the findings from this question.

To switch off compatibility mode in IE9

  1. in IE 9 right click tools icon and select command bar
  2. from command bar select tools
  3. from tools select Compatibility View Settings
  4. uncheck display intranet site in compatibility mode
  5. from command bar select tools ensure compatibility view is unchecked
  6. Restart Browser

Main points for changing code

  • The html 5 doctype simplifies the whole issue of setting a doctype.
  • The reason that there appeared to be a relationship between charset and quirksmode was the error in the meta to add that charset which put it in conflict with the doctype.

So actions completed to resolve problem.

  1. Ignore localhost quirksmode - this is only significant when testing.
  2. Use <!Doctype html> ensuring that the html document commences with this. N:B this does not mean that this has to be the first line of the HTML. php includes can precede it.

  3. In the <head> Use <meta charset="UTF-8">

  4. In php initialize use <?php header("content-Type: text/html; charset=utf-8"); ?>
于 2012-11-22T11:13:36.557 回答
0

简短的回答

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

是哪里出错了,因为你说text/html你的文档类型是 xhtml。你应该使用application/xhtml+xml.

更长的答案

在我看来,您没有正确研究XHTML 实际上是什么。这是一种非常奇怪的文件。XHTML 应该是对传统 HTML 的改进,但它从未真正流行起来,通常不建议您使用它,除非您有非常具体的原因

看看这个网站。一些重要的部分:

XHTML 1.1

对于 1.1 版本的 XHTML,规范很明确:不能使用 text/html。应该使用 application/xhtml+xml 的 XHTML“本机”内容类型,而可以使用 application/xml 的通用 XML 内容类型。

这种内容类型的汤给我们留下了一个相当明确的 1.1 操作过程:如果我们使用 XHTML 1.1 2,我们应该将 application/xhtml+xml 作为内容类型。

这是您的问题:

惊恐的事件!惊恐的事件!

你已经猜到了。提供包含 XHTML 作为 text/html 的所有意图和目的的文档仅意味着浏览器将跳入纠错模式并进行处理。

于 2012-11-21T18:27:46.270 回答
0

两件事,您可以尝试 IE=8 等....

您可能还想检查文档类型;虽然,它看起来是正确的,你可能有隐藏的字符等....尝试使用将显示隐藏字符的基本编辑器。

对于 VI,您可以查看: http: //www.chrispian.com/quick-vi-tip-show-hidden-characters/

这对我来说是第一步。

于 2012-11-21T18:24:23.257 回答