【问题标题】:HTML5 Doctype SupportHTML5 文档类型支持
【发布时间】:2010-05-29 03:25:13
【问题描述】:

很长一段时间以来,我一直在使用 XHTML1.1,因为我觉得自己很酷(是的,没错)。然而,今天我读到了Ian Hickson's Article,关于每个人如何在 XHTML 中使用错误的 MIME 类型,这让我大开眼界。我碰巧是使用 text/html MIME 服务 XHTML 的人之一,因为和很多人一样,W3C 说以这种方式服务它“可以”。

在那篇文章的顶部,他说“现在”他将使用 HTML5 文档类型 (!DOCTYPE HTML) 来提供它。你对这样做有什么想法?如果我不使用不受支持的功能,可以吗?在这种情况下,MIME 类型是什么?

感谢您的帮助, 大都会

【问题讨论】:

标签: html


【解决方案1】:

W3C 并没有说可以将 XHTML 1.1 作为 text/html 提供服务。它说可以将 XHTML 1.0 作为 text/html 提供服务。

HTML5 要理解的一点是,它颠覆了语法和 mime 类型之间的关系。 HTML5 没有说 HTML 和 XHTML 可以使用哪些 mime 类型,而是说如果您将页面作为 text/html 然后 它是 HTML,如果您将它作为 application/xhtml+xml 那么它是 XHTML。

因此,在确定页面是 HTML 还是 XHTML 时,doctype 并不重要。这是浏览器多年来一直在有效地做的事情,尽管应该注意大多数验证器和一些创作工具确实使用 doctype 来确定操作模式。新的 HTML5 验证器(例如 validator.nu)确实使用 mime 类型作为决定因素。目前尚不清楚创作工具应该做什么,并且仍在 HTML 工作组内争论不休,但似乎它们可能不得不依赖文件扩展名的映射,(例如 filename.html 与 filename.xhtml)

如果只是因为 HTML5 验证器和所有浏览器在遇到 HTML5 文档类型时都做同样的事情,那么即使您没有使用任何其他 HTML5 功能,它的使用也一定是件好事。但是,您应该注意,并非所有有效的 HTML4 都是有效的 HTML5,而且 HTML5 的许多细节仍在争论中。在某些情况下,可能不会在 HTML5 验证器中实施最近和提议的更改,因此如果您检查您的网页,您可能会收到报告为有效 HTML4 错误的内容,并且最终可能是有效的 HTML5。

最后,请注意,当您的页面作为 application/xhtml+xml 提供时,HTML5 文档类型是完全可选的。浏览器会直接忽略它。

【讨论】:

  • 好消息!谢谢阿洛西。那么当文档类型为 HTML5 时是否不需要 MIME 类型?
  • 嗯,没有 mime 类型的 HTML 页面很难提供服务,因为大多数服务器会自动添加一个,如果你设法实现它,浏览器的行为会有所不同。因此,您应该始终使用 text/html 或 application/xhtml+xml 的 mime 类型。浏览器使用带有 text/html 的 doctype 来确定是使用 quirks 模式、limited quirks 模式(又名几乎是标准模式)还是标准模式。但是对于 application/xhtml+xml 浏览器总是使用标准模式,所以 doctype 没有效果。
【解决方案2】:

Google.com 已经在提供 HTML5 文档类型 <!doctype html> 的页面(如果您不相信我,请查看源代码),如果这对他们有好处,那对我也有好处 :)
请记住,有效的 HTML 4.01 strict 也是有效的 HTML5 页面!

【讨论】:

  • 同意 :)。伊恩·希克森(来自谷歌)恰好也是编辑之一,所以也许是他推动的。
  • "有效的 HTML 4.01 strict 也是有效的 HTML5 页面!" - 对不起,甚至没有关闭。例如, 元素都是有效的 4.01 strict 但不是有效的 HTML5。
猜你喜欢
  • 1970-01-01
  • 2013-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多