HTML5语法 - HTML与XHTML

时间:2009-07-02 22:07:45

标签: html xhtml html5

即使HTML5是HTML的前进道路,我们也有两个选择:开发人员:XHTML语法和HTML语法。我已经使用XHTML作为我的主要doctype大约5年左右,所以我对它很满意。

但是我的问题是允许使用非xml语法,有没有理由坚持使用有效的XML语法?除了偏好(兼容性等)之外,你是否获得了一个与另一个相关的东西?就个人而言,我会感觉有点肮脏回到不关闭标签,现在对我来说是第二天性,但我会回到HTML语法吗?

更新:我想我的真正问题是有理由从XHTML切换到HTML语法吗?我已经使用XHTML多年了,不确定是否有理由转回来。浏览器兼容性(IE有时与应用程序/ xhtml + xml mime类型相同)等?

10 个答案:

答案 0 :(得分:21)

  

XHTML语法的优点是它是XML。它可以很容易地解析,理解和操纵。客户端使用HTML语法要困难得多。

无意义! HTML5规范定义了如何以相对容易实现的方式解析HTML,并且正在开发可以轻松集成到工具链中的现成解析器。甚至可以将HTML5解析器集成到XML工具链中代替XML解析器。

但您需要了解的是,在实践中,即使您认为自己使用的是基于DOCTYPE的XHTML,您最有可能仍在使用HTML。如果您的内容以text / html的形式提供,而不是application / xhtml + xml或其他XML MIME类型,那么您的内容将被处理为HTML。

使用HTML5,您可以选择使用纯HTML语法,这意味着它只与作为text / html提供和处理的软件兼容,而不是格式良好的XML。或者使用仅XHTML语法,这意味着它是格式良好的XML,但使用与HTML不兼容的XML功能。或者,您可以编写一个符合HTML和XHTML处理的Polyglot文档(原则上,这在概念上类似于编写符合附录C指南的XHTML 1.0)。

答案 1 :(得分:16)

  

我想我真正的问题是有没有   有理由从XHTML切换到HTML   句法?我一直在使用XHTML   年,不确定是否有   有理由转回来。浏览器   兼容性(IE有时是finiky   使用application / xhtml + xml   mime-type)等?

如前面的回答所述,text/html被解析为HTML,application/xhtml+xml被解析为XML。因此,您应该使用与您使用的MIME类型匹配的语法。

如果您现在正在使用text/html但使用XHTML语法,那么您应该修复您的内容以使用HTML5语法。您可能已经接近了,因为HTML5允许void元素的XMLesque />空元素语法(总是为空的元素,例如imgbr)。

如果您现在正在使用application/xhtml+xml,那么如果您关心支持IE,那么IE支持将成为切换到text/html和HTML语法的理由。

尝试编写正确HTML5和XHTML5的多语言文档(用于提供不同的MIME类型,使用相同的有效负载字节执行不同的浏览器)比初看起来更难,并且不值得麻烦。

答案 2 :(得分:7)

HTML5草案非常清楚使用哪种语法:

  • 在以text / html发送页面时使用HTML语法
  • 在将页面发送为application / xhtml + xml
  • 时使用XHTML语法

参考:http://dev.w3.org/html5/spec/Overview.html#authors-using-xhtml

答案 3 :(得分:2)

使用XHTML时,您可以将其与其他XML内容混合使用,例如: MathML,SVG或您自己的专有格式,只需在某个时刻更改命名空间即可。此外,您可以将XHTML嵌入到其他XML文档中。

(实际上,MathML和SVG也可用于非XML HTML5,但它们是特殊的)

答案 4 :(得分:1)

您不应使用XHTML在Web(或包括Internet Explorer客户端在内的任何网络)上提供内容;请参阅Sending XHTML as text/html Considered Harmful了解完整的理由。

答案 5 :(得分:1)

XHTML的大部分好处都有failed to materialise。虽然我不建议将它用于新项目,但只要你遵循compatibility guidelines,XHTML作为text / html似乎是非常易于管理和广泛使用的。将任何重要项目更改回HTML序列化可能是不值得的。

答案 6 :(得分:0)

XHTML语法的优点是它是XML。它可以很容易地解析,理解和操纵。客户端使用HTML语法要困难得多。

但最终,这只是语法问题。 HTML5允许这两种形式。

答案 7 :(得分:0)

  

更新:我想我的真正问题是有理由从XHTML切换到HTML语法吗?我已经使用XHTML多年了,不确定是否有理由转回来。浏览器兼容性(IE有时与应用程序/ xhtml + xml mime类型相同)等?

你必须要考虑两件事。您正在编写的语言和您要发送的语言。 Web由3个组件定义:

  • URI
  • 资源 - 标记语言(文档)
  • 协议 - HTTP(管理信息空间的工具)

您可以在桌面上编写带有XML语法的文档,例如使用XHTML。在这个特定的环境中,如果您将扩展名“.xhtml”赋予文件名并使用本地浏览器打开它,它将被解析为XML。如果您将扩展名“.html”赋予文件名,它将被解析为HTML。基本上在你的创作工具中,它是XML,但是一旦用工具处理它就不再重要了。

在网络上,由URI标识的资源将以特定的mimetype发送,大多数情况下,这些天,人们正在使用text / html。 mimetype 定义了客户端(浏览器,搜索引擎机器人等)必须如何处理您的文档。如果您使用的是XML语法,但是使用 text / html 发送,则该文档将由html解析器处理。

要通过网络以XML格式发送文档,您必须将服务器配置为以application / xhtml + xml格式发送。 (注意:IE8和以前的版本不了解什么是application / xhtml + xml,他们会提出保存菜单。)

HTML 5 Abstract模型的设计方式使您可以几乎使用html语法或text / html中的xml语法编写它。几乎是因为即使你使用XML语法编写(关闭空元素,引用属性等),由于XML解析器和HTML解析器处理这些问题的方式,你将会遇到调用脚本和命名空间的复杂页面的麻烦。

答案 8 :(得分:0)

我喜欢XHTML,因为它迫使我写出一个好的页面。 XHTML有许多优点,因为浏览器可以更快地解析它,并且您需要制作格式良好的XML而不仅仅是HTML。此外,您需要提供MIME类型为application/xhtml+xml的页面,否则您将无法获得X的任何优势.XHTML唯一的问题是它不会在IE8中显示早。

答案 9 :(得分:0)

2019更新

W3关于XHTML的自己的话:

“建议使用新的规范代替该规范。新的实现应遵循latest version of the HTML specification。”

因此,您应该使用HTML 5。*