很长一段时间以来,我一直在使用 XHTML1.1,因为我认为自己很酷(是的,没错)。但是,今天我读了Ian Hickson's Article关于每个人如何在 XHTML 中使用错误的 MIME 类型,这让我大开眼界。我碰巧是那些使用 text/html MIME 提供 XHTML 的人之一,因为像很多人一样,W3C 表示“可以”以这种方式提供服务。
在那篇文章的顶部,他说“现在”他将使用 HTML5 文档类型 (!DOCTYPE HTML) 提供它。你对这样做有什么想法?如果我不使用不受支持的功能,可以吗?在这种情况下,MIME 类型是什么?
感谢您的帮助, 大都市
最佳答案
W3C 并没有说可以将 XHTML 1.1 作为文本/html 提供。它表示可以将 XHTML 1.0 作为文本/html 提供。
HTML5 需要理解的一点是,它彻底改变了语法和 MIME 类型之间的关系。 HTML5 没有说明哪些 mime 类型可以与 HTML 和 XHTML 一起使用,而是说如果您将页面作为 text/html 来提供,那么 它就是 HTML,如果您作为 application/xhtml+xml < em>那么就是XHTML。
因此文档类型在确定页面是 HTML 还是 XHTML 时无关紧要。这是浏览器多年来一直有效地做的事情,尽管应该注意的是大多数验证器和一些创作工具确实使用文档类型来确定操作模式。新的 HTML5 验证器(例如 validator.nu)确实使用 mime 类型作为决定因素。创作工具应该做什么目前尚不清楚,并且仍在 HTML 工作组中争论不休,但他们似乎可能不得不求助于文件扩展名的映射,(例如 filename.html 与 filename.xhtml)
如果只是因为 HTML5 验证器和所有浏览器在遇到 HTML5 文档类型时都会做同样的事情,那么即使您没有使用任何其他 HTML5 功能,它的使用也一定是一件好事。但是,您应该注意并非所有有效的 HTML4 都是有效的 HTML5,并且 HTML5 的许多细节仍在争论中。在某些情况下,最近和提议的更改可能不会在 HTML5 验证器中实现,因此如果您检查您的页面,您可能会得到报告为有效 HTML4 错误的内容,最终可能是有效的 HTML5。
最后,请注意,当您将页面作为 application/xhtml+xml 提供时,HTML5 文档类型是完全可选的。浏览器会忽略它。
关于HTML5 文档类型支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2933652/