据我了解,XHTML(1.0,1.1)和XHTML 5都不需要DTD。如果这是真的,浏览器将如何区分这两者?
我只能假设当浏览器供应商支持(X)HTML 5时,所有XHTML都将在XHTML 5规则下解释(假设XHTML 5是XHTML 1.0的超集)。这是怎么回事?
答案 0 :(得分:3)
来自http://hsivonen.iki.fi/xhtml2-html5-q-and-a/:
如果我可以为XHTML5使用任何doctype,浏览器如何区分XHTML 1.0和XHTML5?
他们不能,他们不需要。按照设计,实现XHTML5的用户代理将适当地处理作为XHTML 1.0创作的输入。
答案 1 :(得分:2)
没有XHTML 5.目前有HTML 4.01和XHTML 1.0。 There will be no XHTML 2.0。只有HTML 5. HTML 5不是XML标准(意味着HTML 5文档不是XML文档)。
也许你在看HTML 5 + XML = XHTML 5。我想你可以将HTML 5表达为XML,但据我所知这是非标准的。更具体地说,这只是文档树的序列化方法而不是标准。
要澄清此问题,请查看HTML 5 and XHTML 5 - one vocabulary, two serializations。即使从标题中它也说“一个词汇,两个序列化”。 Conversation With X/HTML 5 Team:
XHTML 5规范说“一般来说,作者是 不鼓励尝试使用XML Web“。为什么要编写XML规范 XHTML 5然后劝阻作者 从使用它?为什么不放弃 支持XML(XHTML 5)?
有些人会使用XML HTML 5无论我们做什么。这很简单 要做的事 - XML是一种元语言 用于描述树结构,HTML 5 是一种树状结构,很明显 XML可用于描述HTML 5。 问题是,如果我们不这样做 指定它,然后是每个思考的人 很明显,并且继续前进 它会略有不同 方式,我们将有一个 互操作性的噩梦。所以与其 我们咬紧牙关并定义它如何 如果有人这样做,就必须工作。
XHTML 1.0是一个标准。它与HTML 4不同.XHTML 5,如果你可以称之为,只不过是以XML形式表示HTML 5文档。
答案 2 :(得分:2)
浏览器不会。这些元素存在于同一名称空间中,并具有相同的含义,除非WHATWG决定更改它们 - 例如b元素 - 浏览器将不得不混淆。
答案 3 :(得分:-1)
可以通过DOCTYPE(HTML5和XHTML 1.x不同)进行区分,但它的存在在XHTML5中是非强制性的;和元素命名空间是一样的。所以,一般来说,没有好办法区分它们。如果你想编写便携式XHTML5,我想提供DOCTYPE是你最好的选择。