简而言之,XHTML和HTML有什么区别?

4

我一直对这两个概念感到困惑。有人能简要概述它们之间的关键区别和一个典型的使用案例吗?

XHTML更加"严格" / 干净 / XML-y吗?

如果XHTML只是HTML的"更正确"版本,那么我为什么还要使用HTML呢?

3个回答

7
XHTML 1.0是使用XML重新实现的HTML 4.01,这使得您可以使用XML工具处理它(但如果您想支持IE,则需要小心输出),并混合其他XML命名空间,如SVG或MathML(除非您想支持IE)。编写与HTML兼容的XHTML需要相当大的努力,而且大多数尝试的人都会搞砸,因此我建议坚持使用HTML。

1
XML也是SGML的子集(http://en.wikipedia.org/wiki/Standard_Generalized_Markup_Language#Derivatives) - Simon P Stevens
它有像命名空间这样的东西。据我所知,这些在 SGML 中是不可用的。 - Quentin
1
@dfa,导致XHTML失败的是微软对XHTML的支持不足以及浏览器供应商对XHTML 2缺乏兴趣,而不是HTML5。HTML5是对此的反应,而不是原因。 - Quentin
1
XHTML在XML方面上更加“正确”,就像我的雷诺Cleo在汽车方面上比EasyJet飞行的那些东西更加正确一样。HTML不是XML,但这并不一定是件坏事。 - Quentin
1
@dfa:XHTML不是HTML的一个已死分支。HTML 5规范包括两种语言变体,一种是“传统”HTML变体,另一种是XHTML变体。根据HTML 5规范,这两者都得到了充分的支持。请参阅http://en.wikipedia.org/wiki/HTML_5。 - Simon P Stevens
显示剩余5条评论

1

总的来说:语法。

XHTML是符合XML语法规则的HTML。(除非我漏掉了什么,否则XML本身只是一组语法规则。)

如果我理解正确,HTML看起来有点像SGML,也有点像XML,但实际上有自己相当古怪的语法规则,这些规则由主要的网络浏览器相对有效地实现,并且现在已经被编码到HTML5规范中(以前,在网络浏览器自身的行为之外,它们还没有被编码)。


-1

XHTML 大体上是在 XML 中重新实现了 HTML 4.x(而不是直接基于 SGML),这导致它具有一些附加功能,例如命名空间支持,使得更容易扩展以解决特定问题的标记,同时保持有效。

问题是,就我所知,到目前为止没有浏览器完全将 XHTML 解释为 XML,因此它主要是为希望在生成的标记上操作的开发人员提供了一个额外的奖励(因为它是 XML,因此可以更轻松地解析)。

因此,简而言之:XHTML 更严格。


Opera、Safari、Chrome、Firefox、Konqueror以及除Internet Explorer之外的所有主要浏览器,如果使用正确的content-type提供XHTML,则将其解释为XML。 - Quentin
XHTML 不更加严格。它抛弃了 HTML 中的规则(例如,“表必须有 tbody”),因为它无法处理隐式元素,而工作组不想让人们不得不开始明确地编写它们。 - Quentin
啊,不错啊,我不知道XML支持已经完全集成到其他浏览器中了。我一直以为它只是有限制的。 - Horst Gutmann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接