HTML 4.01和XHTML 1.0的区别

6
哪一个更适合新项目?为什么?假设所有内容都将是严格的,因为我认为对于新项目没有理由选择过渡性的方式。

我在这里回答了相同的问题,这是我的最受赞同的答案之一:https://dev59.com/9nI-5IYBdhLWcg3wKE-x#1989569 - jpsimons
4个回答

8
HTML 4.01和XHTML 1.0的问题在于它们已经被HTML5所取代。实际上,你正在问的问题是错误的。HTML4、XHTML和HTML5基本上是同一种语言,但其中一个缺少某些功能。真正重要的事情(也可能是你觉得必须选择的原因)是需要指定一个文档类型,以防止旧浏览器进入怪异模式。在你发现需要指定文档类型的时候,你也会发现自己面临选择使用哪个文档类型的选择,并且语法使它看起来好像你必须完全正确地使用它,否则它就会停止工作。但你不需要担心这个问题。以下文档类型足以使所有当前浏览器(包括IE6)运行在标准模式下:
<!DOCTYPE html>

简单,是吧?根本不需要担心HTML4和XHTML。

问题在于,上面的文档类型也恰好是HTML5的文档类型。之所以选择它,是因为它可以在现有的浏览器中工作。

如果您需要支持旧版浏览器,您不必使用HTML5的新功能,但使用此文档类型意味着您将准备好在需要时使用它们。如果您确实想尝试一下,许多新功能会在旧版浏览器中逐渐退化,因此您可以使用它们;它们可能无法在IE6中工作,但也不会破坏浏览器。

希望这有所帮助。


2
它们并没有被HTML5淘汰 - 它仍然是一个草案,建立在它们之上,并且仍然让您选择定位XML解析器和标签soup解析器。 - Quentin
Doctype(直到HTML 5)还提供了DTD进行验证。您需要使用专用的HTML 5 QA工具(可能并不是很成熟,仍在跟踪移动目标),而不是通用的SGML或XML验证器。 - Quentin
1
事实是HTML5是未来。XHTML2的工作已经被放弃,所有当前的工作都朝着HTML5和相关技术的方向发展。如果你想在未来几年保持最新状态,那么HTML5是唯一的选择。 - Spudley
1
@David Dorward - 坦白说,我宁愿不指定文档类型。由于怪异模式问题,我被迫这样做,但没有其他原因。如果我想验证一个文档,我完全能够告诉验证器它是什么类型的文档。在代码中放置文档类型是任意的,并且浪费带宽(浏览器不需要知道它;即使您指定了错误的文档类型,它也不会关心并将努力呈现页面)。 - Spudley
1
@Spudley - HTML5 唯一无法解决的问题是如何选择使用 HTML 序列化还是 XHTML 序列化(或者混合序列化),因为这两种序列化都包含在 HTML5 规范中。 - Alohci
显示剩余3条评论

0
如果是为了新项目,开始学习HTML5吧。它将两者的优点结合在一起,没有XHTML中的标签混乱和文档类型(doctype)的疯狂。

我并不建议您使用尖端的HTML5功能,而是建议您仅使用HTML5文档类型,并为所有浏览器生成具有未来性的HTML代码。 - leebriggs
2
两者兼备? XHTML比HTML具有两个优势。一是能够混合使用名称空间(HTML 5不具备此功能);二是通过强制执行格式规范,减少标签混乱:通过移除可选结束标记和消除布尔属性值... HTML 5则会把这些东西加回去。HTML 5还通过删除所有有用信息(用于执行语法检查的机器可解析语言描述的位置),引入了doctype混乱问题。 - Quentin

0

如果您正在使用XML工具链,并且它可以处理HTML兼容性(这是IE 6-8所需的),那么您可能考虑使用XHTML,否则请使用HTML。

如果HTML 5中添加的任何功能对您有用,并且浏览器对这些功能的支持已经足够成熟,则使用(X)HTML 5,否则请使用HTML 4.01 / XHTML 1.0,因为它们具有更成熟的QA工具。


-2

XHTML(或者说HTML5)。

我们谈论的是网络进化的十年。如果你是网站开发人员或设计师,请使用严格模式并验证你的代码-这将确保你的网站(在有效的CSS下)在大多数操作系统和web浏览器中正确显示。它将更容易维护。这将使你成为一个更好的Webdev,因为你将了解语义。将来迁移到HTML5也会更容易。


“XHTML(或者说HTML 5)” - 仅此一句话就让你的答案充满了疑问。 - Mchl
有人应该向stackoverflow传达这个消息,他们使用的是html4 doctype。 - leebriggs
1
主要原因是David所说的。此外,与普遍的观点相反,XHTML1并不是HTML4的后继者,而HTML5也不是XHTML1的后继者。更重要的是,如果使用正确的MIME类型发送,IE无法处理XHTML。 - Mchl
1
XHTML并没有为您提供更加健壮的标记(因为HTML的解析规则已经被清晰地定义)。它的清洁度也存在争议,可选标签和布尔属性的删除意味着文档中会有额外的标记,而这些标记以前可以被隐含。 - Quentin
这是我的观点 - 当然它有明确定义的解析规则,但这就像选择脚本语言一样:有些人使用Python,有些人使用PHP,但对于用户(即“项目”)来说,结果是相同的,并且已经交付。可以考虑Web开发者想要什么 - 在我的情况下,我不喜欢“暗示”的标记,例如。 - AeroCross
显示剩余5条评论

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