XHTML和HTML5(及其后续版本)之间的关系是什么?

12

对于那些使用HTML4并计划使用HTML5的人来说,考虑XHTML相关细节是否有必要进行Web开发吗?或者说XHTML是与当前主流Web开发(我想指的是HTML5)无关的“旁枝末节”的Web技术发展吗?


提问的原因

我之所以提问,是因为我之前在StackOverflow上发表的一个答案最近被评论员评论,“您不应该使用大写HTML标签”。当我问“为什么”时,评论员指向了几篇文章,其中都将只允许小写标签名称的理由作为主要原因。

由于我目前不使用XHTML进行Web开发(仅使用纯HTML4.0),并且打算使用HTML5作为下一步,所以我想知道XHTML是否应该成为我的各种决策中的因素。

请注意,本问题并非在询问是否应在纯HTML中使用大写或小写标签名称——只是询问在做决策时,是否应考虑XHTML相关规则,还是应忽略XHTML相关规则。


喜欢这个问题。看到一个不是关于调试或代码片段问题的问题真是令人耳目一新。 - Purag
1
我从来不明白为什么开发人员继续坚持编写非多语言标记。 - J. Holmes
@32bitkid:这很有趣,但再次引发了一个问题,纯HTML和XHTML之间的差异是否真正有益并值得麻烦? - Purag
1
@Purmou,你是在问为什么要编写具有弹性和良好格式的标记和代码吗? - J. Holmes
@32bitkid:我还没有听到一个好的理由来关心XHTML。 - Purag
4个回答

8
大部分关于XHTML的信息都没有提到XHTML的整个目的是为了供人类和计算机进行数据交换。XHTML是为了让计算机之间能够互相交流,同时保持对人类可读性而创建的。
最荒谬的事情是,各种编码专家变得着迷于XHTML的合规性,却没有任何使用XHTML进行数据交换的意图,也不理解XHTML实际上是什么。 编辑: 一个很好的XHTML使用例子是航空公司发布其航班时刻表。公司可以利用XHTML生成一个单一的航班列表,既能被在线访问的人类所消耗,也能被读取数据以满足他们需求的服务所使用。
另一方面,如果您拥有一家美发沙龙,则无需使您的网站符合XHTML标准。

1
我通常讨厌杜撰的统计数据......但我更加讨厌它们在像 stack overflow 这样的网站上出现。 - J. Holmes
@32bitkid - “generally” 的意思是你讨厌 98% 的虚假统计数据吗? :) - DVK
非常有趣。虽然对于大多数情况而言,我认为计算机的数据消耗并不是我们作为Web开发人员需要确保的事情。我想如果情况需要的话这可能会有所帮助。 - Purag
我们不需要将数据提供给Feed阅读器或Googlebot吗?屏幕阅读器呢?Ajax有人用吗? - Sinthia V

2
直接来说,在为HTML5的HTML序列化标记文档时,没有必要考虑XHTML规则。¹然而,现代实践似乎是使用小写标签,这在一定程度上受到了XML和XHTML的影响。因此,如果你发现自己在一个大型开发团队中工作,很可能会要求整个团队都使用小写字母以保持一致性。所以,养成这个习惯可能是值得的。
¹请注意,还有使用HTML5的XHTML序列化的可能性,这种情况下当然会有影响,但我不认为这是你所问的。

1
据我所知,XHTML旨在将HTML的特性与XML的严格性相结合。例如,在HTML中,你可以编写<b><i>test</b></i>,浏览器不会在意,它知道你的意思。然而,在XHTML中,这将导致错误并阻止整个页面显示。
然而,大多数浏览器也容忍XHTML中的错误,所以它变得有点无意义。
就我个人而言,使用小写标签名称而不是大写标签名称的唯一原因是因为我太懒了,不想按住Shift键,而且我重新映射了我的CapsLock键为更实用的键。

3
那甚至不是有效的HTML,而且浏览器会在意——它会尽力去猜测你的意思,但可能并不是你实际想表达的。例如,<p>test<div>test</div>test</p>无法产生你期望的dom。 <p><i>test<p><i>test<p><i>test也无法产生正确的结果。 - J. Holmes

1
根据我个人对XHTML的观察,它唯一的“好处”就是多功能性。例如,据我所知,只要相对容易地创建自定义标记/元素或属性,仍然可以通过XHTML进行验证。
我认为没有必要使用自定义标签,因为如果没有一个不符合语义的标签(尽管由于HTML5在语义标记方面的改进,这种情况很少见),您可以只使用
并使用class或id使其“合适”。而且,HTML5无论如何都允许自定义属性。
因此,我认为HTML5和XHTML之间没有直接的关系,或者至少我认为不应该有任何关系。规范没有推荐其中任何一种,它只是指出了在HTML5中,它们是大小写不敏感的事实。
我个人使用小写标记名称有两个原因:
  1. 每次按住Shift键都很麻烦(虽然有人可能会说你需要按住Shift键才能得到尖括号,但无论如何)。
  2. 这是一种风格偏好——我真的认为使用小写标签名称以及小写文档类型(<!doctype html>)看起来更清晰。大写标签名称非常老式,现在已经不再使用了。这可能只是像我这样的新一代程序员的一件事情。

无论如何,你都不应该关注适用于你甚至没有使用的文档类型的规则。


是的,这就是我提出问题的原因。在大写标签是常态(并且拥有自己的主页很酷)的时候,我开始进行 Web 开发。 - DVK

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