HTML5语法 - HTML与XHTML

Par*_*ots 32 html xhtml html5

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

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

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

Lac*_*unt 21

XHTML语法的优点是它是XML.它可以很容易地解析,理解和操纵.对于客户来说,HTML语法要困难得多.

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

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

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

  • Lachlan,它实现起来并不容易,你和我一样知道,与XML解析器相比,html 5解析器的数量仍然很少. (2认同)
  • @Lachlan,你很清楚HTML 5仍然是一个草案,可能会有变化.据我了解,今天普通公众可用的浏览器都没有完全实现HTML5解析器规范,更不用说其他用户代理了.另一方面,XML解析器无处不在.也许有一天,html5解析器和xml解析器一样方便,但还没有.也许有一天,IE将实现application/xhtml + xml,如果他们愿意,网络作者可以留下text/html.与此同时,如果我希望像我一样希望解析自己的网页,那么使用多语言文档是可行的方法. (2认同)
  • @Lachlan Hunt:与更正式的语法相比,解析不太严格的语法通常更困难。务实地说,两者如此接近以至于*几乎*相同的难度。我不明白的是为什么他们无论如何都不喜欢 XHTML 语法。HTML5 感觉就像倒退了一步,只是按照我的看法调用它。新技术,爱`em...旧语法?那需要保持死亡。 (2认同)

hsi*_*nen 16

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

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

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

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

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


Ion*_*tan 7

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

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

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

  • 对不起,但它并没有真正回答我的问题.我知道我的类型告诉浏览器使用什么语法 - 我在问自己要使用哪种语法.我可以将mime-type设置为我想要的任何东西,所以我知道*如何*在两者之间切换. (2认同)