即使HTML5是HTML的前进道路,我们也有两个选择:开发人员:XHTML语法和HTML语法。我已经使用XHTML作为我的主要doctype大约5年左右,所以我对它很满意。
但是我的问题是允许使用非xml语法,有没有理由坚持使用有效的XML语法?除了偏好(兼容性等)之外,你是否获得了一个与另一个相关的东西?就个人而言,我会感觉有点肮脏回到不关闭标签,现在对我来说是第二天性,但我会回到HTML语法吗?
更新:我想我的真正问题是有理由从XHTML切换到HTML语法吗?我已经使用XHTML多年了,不确定是否有理由转回来。浏览器兼容性(IE有时与应用程序/ xhtml + xml mime类型相同)等?
答案 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 />
空元素语法(总是为空的元素,例如img
和br
)。
如果您现在正在使用application/xhtml+xml
,那么如果您关心支持IE,那么IE支持将成为切换到text/html
和HTML语法的理由。
尝试编写正确HTML5和XHTML5的多语言文档(用于提供不同的MIME类型,使用相同的有效负载字节执行不同的浏览器)比初看起来更难,并且不值得麻烦。
答案 2 :(得分:7)
HTML5草案非常清楚使用哪种语法:
参考: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个组件定义:
您可以在桌面上编写带有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。*