HTML 5与XHTML 1.0 Transitional?
看起来HTML 5将被Firefox 3.1和其他浏览器支持(部分)。 它增加了对视频和音频作为标签的支持,但这些都是XHTML 1.0 Transitional无法识别的新标签。 如果我在Firefox的未来版本中使用新的HTML 5标记,但是将XDML用于DTD,那么该行为应该是什么? 如果我将HTML 5标记与XHTML 1.0 Trans混合呢?
这变得令人困惑。 他们为什么不把这些标签添加到XHTML中? 我们如何支持XHTML和HTML 5?
HTML 5上的视频:http://www.youtube.com/watch?v = xIxDJof7xxQ
那么,一般来说HTML是SGML,而XHTML是用XML表示的。 因此,创建XHTML与HTML相比具有更多限制(以标记的形式)。 (基于SGML的与基于XML的HTML)
正如维基百科中提到的那样,HTML 5也会有一个XHTML变体(XHTML 5)。
经验法则:你应该总是使用有效的标记。 这也意味着,不应该使用所提到的<video>
或<audio>
在XHTML 1.0过渡标签,因为这些都不是规范的元素。 如果你确实需要使用这些标记(我很怀疑),那么你应该确保你使用HTML 5 / XHTML 5 DTD以指定您的文档提供DOCTYPE。
在执行给定状态使用HTML 5或XHTML 5(据我所知,该标准甚至没有解决,但是,对吗?)可能会适得其反,因为几乎所有的用户可能无法看到网站呈现correclty反正。
编辑2013:因为最近downvotes的,自该接受的答案不能被删除(由我),我想补充的是HTML5的支持和标准化进程是时下完全不同的,以它是什么,当我五年前写了这个答案。 由于大多数主流浏览器支持HTML5草案的大部分地区,因为很多东西可以固定在旧的浏览器polyfills,我主要使用HTML5现在。
HTML5比XHTML 1.0更容易编写。
您不必手动声明“http://www.w3.org/1999/xhtml”命名空间。
您不必为脚本和样式元素添加类型属性(它们默认为text / javascript和text / css)。
浏览器只是忽略大部分内容,您不必使用长文档类型。 您必须使用<!DOCTYPE html>,这很容易记住。
您没有选择在doctype中包含或不包含dtd uri,并且您没有在过渡和严格之间进行选择。 你只需要一个严格的文档类型来调用完整的标准模式。 这样,您不必担心偶然处于几乎标准模式或怪癖模式。
字符集声明要简单得多。 这只是<meta charset =“utf-8”>。
如果您发现将void元素编写为<name>会令人困惑,如果需要,可以使用<name />。
HTML5在http://validator.nu/上有一个非常好的验证器。 验证器不受不能表达所有规则的蹩脚DTD的约束。
您不必在内联脚本或样式表(在某些情况下)中添加// <![CDATA等)来验证。
如果需要,您可以使用嵌入。
就语法而言,当您使用HTML5时,您最终会获得更清晰,更易于阅读的标记,并始终会调用标准模式。 当你使用XHTML 1.0(作为text / html)时,你指定了一堆crud(为了验证蹩脚的dtd),浏览器会自动执行。
神话和误解在这个线索中比比皆是。
XHTML 1.0比HTML 5旧。它不能使用任何新词汇。 事实上,它的主要卖点是它使用与HTML 4.01完全相同的词汇。
不会有XHTML 1.2 - 最有可能的。 这是不需要的。 XHTML 5是HTML 5的XML序列化。相同的词汇表,不同的解析规则。
HTML在浏览器中从未被视为真正的SGML。 没有浏览器曾经实现过符合SGML的解析器。 HTML 5将把这个事实变成一个规则,HTML序列化将遵循今天的事实标准。 人们也许可以说它是“SGML-ish”。
如前所述,DTD在浏览器中只有一个用途,那就是区分标准合规模式和怪癖模式。 因此它只影响样式和脚本。 如果您在具有严格文档类型的页面上使用框架,则它们将呈现得很好。 即使后者是可憎的,前者也不符合任何现行标准,即使嵌入甚至是<marquee>也是如此。 不过,它是HTML 5的一部分。
无论序列化,XML还是HTML,都可以使用视频和音频。 它们是HTML 5和XHTML 5的一部分。解析阶段结束后,浏览器将构建文档的内部DOM。 无论序列化如何,DOM都将用于所有实际目的。 是的,无论文档类型如何,使用text / html发送的XHTML仍然是正常的html。