47

What are the main differences between XHTML and HTML? Which one is better in your opinion, and why? Do most browsers support both?

4

8 回答 8

20

XHTML is based on XML, and thus requires the source to be well-formed. Since XHTML is more strict than HTML, less pre-processing is needed by the rendering engine.

XHTML should be served as application/xhtml+xml for you to take advantage of the benefits, otherwise XHTML will be treated as ordinary HTML. Serving it as 'application/xhtml+xml' is not common on the web due to Internet Explorer, which cannot handle XHTML.

于 2008-10-12T18:58:32.490 回答
18

这可能是我读过的关于每个人的差异和相对优点的最好的文章:

HTML 与 XHTML

我们应该使用哪一个,HTML 还是 XHTML,为什么?

WHATWG wiki上也有一个相当技术性的比较。

于 2008-10-12T19:45:50.117 回答
9

The Extensible Hypertext Markup Language, or XHTML, is a markup language that has the same depth of expression as HTML, but also conforms to XML syntax.

XHTML is "the modern version of HTML 4".

More info : wikipedia and W3C

于 2008-10-12T18:55:26.943 回答
9

不同之处在于 XHTML 基于 XML,而 HTML 基于 SGML。

浏览器使用 SGML 解析器处理以内容类型发送的内容text/html,使用 XML 解析器处理application/xhtml+xml.

使用 SGML 解析器时,即使在文件中遇到语法错误,浏览器也会继续解析。这就是为什么很多人在向浏览器发送看起来像 XML 的文件时认为他们正在使用 XHTML。这实际上是一个错误,因为这会在浏览器中触发许多解析错误并减慢渲染过程。

使用 XML 解析器时,浏览器会在遇到语法错误时停止解析并显示 XML 错误。当然,这仅适用于具有用于 HTML 内容的 XML 解析器的浏览器,而对于仅下载文件而不显示它的 Internet Explorer 则不然。

那你该怎么办?

如果您需要 XML 强加的语法检查和严格的结构,您应该使用 XHTML。您应该记住,您必须以错误的内容类型将 XHTML 内容发送到 Internet Explorer,并隐含所有问题。您还应该记住,只要文件中有无效内容,您的文档就会中断,因此您必须非常小心地清理任何用户输入。

您应该将 HTML 用于其他任何事情。HTML 可以正常工作,并且是当今受到极大支持的标准。甚至下一个标准 HTML 5 也定义了基于 SGML 的语法,因此这将持续下去。

请记住,无论您选择哪种格式,验证输出始终是检测语法错误的好主意。

于 2008-10-12T22:01:05.943 回答
3

这不是关于哪个更好。HTML 仍在继续发展,HTML5 也正在开发中(尽管已经有很多年了:))并提供了一些新元素,以便更轻松地管理网页中的多媒体等新技术。

另一方面,XHTML 是关于 XML 的严格性,我们应该说保持干净。如果您保持 HTML 文档格式正确(关闭每个打开的元素,将内容嵌套在树形中),您将充分利用 XHTML/XML 世界,并且仍然可以使用 HTML 格式,将您的文档声明为是 HTML,但仍然保持它们“干净”(格式良好)。我认为我们不应该宣布它们中的每一个都“更好”。它们可以共存。这只是关于我们以正确的方式做事。

于 2008-10-12T19:10:30.250 回答
3

如前所述,XHTML 应该(理论上)是有效的 XML。理论上(但实际上并非如此)不符合标准的 XHTML 不应由浏览器呈现。

使用一个比另一个几乎没有优势,所以写你个人喜欢的任何一个 - 只要你一直这样做。将成为未来 Web 标准的 HTML5 将同时支持 XHTML 和 HTML 4.01 样式的标签(之前通过可选的“XML 序列化”),而 XHTML2 看起来将在没有供应商积极参与的情况下几乎死气沉沉支持它。

于 2008-10-12T20:14:00.140 回答
1

总结:使用 HTML。

很多不同之处,许多聪明人(知道他们在说什么:D)已经 总结了大部分 的利弊。

于 2008-10-12T20:03:28.147 回答
0

An example of a difference is the break tag.

<br>

is proper HTML, but in XHTML where the elements need to validate as XML, you must self-close the tag:

<br />
于 2008-10-12T18:57:32.400 回答