4

据我了解,XHTML (1.0, 1.1) 和 XHTML 5 都不需要 DTD。如果这是真的,浏览器将如何区分两者?

我只能假设当浏览器供应商支持 (X)HTML 5 时,所有 XHTML 都将根据 XHTML 5 规则进行解释(假设 XHTML 5 是 XHTML 1.0 的超集)。这是它的工作方式吗?

4

4 回答 4

3

来自http://hsivonen.iki.fi/xhtml2-html5-q-and-a/

如果我可以为 XHTML5 使用任何文档类型,浏览器如何区分 XHTML 1.0 和 XHTML5?

他们不能,也不需要。按照设计,实现 XHTML5 的用户代理将适当地处理以 XHTML 1.0 编写的输入。

于 2009-07-19T06:39:58.847 回答
2

没有 XHTML 5。目前有 HTML 4.01 和 XHTML 1.0。不会有 XHTML 2.0。只有 HTML 5。HTML 5 不是 XML 标准(意味着 HTML 5 文档不是 XML 文档)。

也许您正在查看HTML 5 + XML = XHTML 5。我想您可以将 HTML 5 表示为 XML,但据我所知这是非标准的。更具体地说,这只是文档树的序列化方法,而不是标准。

要澄清这个问题,请查看HTML 5 和 XHTML 5 - 一个词汇表,两个序列化。即使从标题上看,它也说“一个词汇,两个连载”。与X/HTML 5 团队的对话

XHTML 5 规范说“一般来说,不鼓励作者尝试在 Web 上使用 XML”。为什么要编写像 XHTML 5 这样的 XML 规范,然后阻止作者使用它?为什么不直接放弃对 XML (XHTML 5) 的支持?

无论我们做什么,有些人都会在 HTML 5 中使用 XML。做起来很简单——XML 是一种描述树形结构的元语言,HTML 5 是一种树形结构,很明显 XML 可以用来描述 HTML 5。问题是如果我们不指定它,那么每个人认为这是显而易见的并继续前进,它会以稍微不同的方式做到这一点,我们将面临互操作性的噩梦。所以相反,我们咬紧牙关,定义如果人们这样做,它必须如何工作。

XHTML 1.0 是一个标准。它与 HTML 4 不同。XHTML 5,如果你可以这么说的话,只不过是用 XML 格式表示 HTML 5 文档。

于 2009-07-19T06:29:39.913 回答
2

浏览器不会。这些元素存在于同一个命名空间中,并且具有相同的含义,除了 WHATWG 决定更改它们的地方——例如 b 元素——浏览器将不得不应付。

于 2009-07-19T06:33:59.640 回答
-1

可以通过 DOCTYPE 进行区分(HTML5 和 XHTML 1.x 不同),但它的存在在 XHTML5 中是非强制性的;和元素命名空间是一样的。所以,一般来说,没有很好的方法来区分它们。如果你想编写可移植的 XHTML5,我想提供 DOCTYPE 是你最好的选择。

于 2009-07-19T06:37:56.417 回答