HTML 5与XHTML 1.0过渡吗?
Firefox 3.1和其他浏览器似乎将(部分)支持HTML 5。 它添加了对视频和音频作为标签的支持,但是这些是XHTML 1.0 Transitional无法识别的新标签。 如果我在将来的Firefox版本中使用新的HTML 5标签,但对XHTML使用DTD,那应该是什么样的行为? 如果我将HTML 5标记与XHTML 1.0 Trans混合在一起怎么办?
这变得令人困惑。 他们为什么不只是将这些标签添加到XHTML? 我们如何同时支持XHTML和HTML 5?
HTML 5上的视频:[http://www.youtube.com/watch?v=xIxDJof7xxQ]
Brennan asked 2020-01-01T18:10:31Z
9个解决方案
97 votes
HTML5比XHTML 1.0更容易编写。
您不必手动声明“ [http://www.w3.org/1999/xhtml”]命名空间。
您不必向脚本和样式元素添加类型属性(它们默认为text / javascript和text / css)。
您无需在浏览器只是忽略大多数文档的情况下使用长文档类型。 您必须使用,这很容易记住。
您没有选择在文档类型中包含或不包含dtd uri的选择,并且在过渡和严格之间没有选择。 您只有一个调用完全标准模式的严格doctype。 这样,您不必担心会意外地处于“几乎标准”模式或“怪癖”模式。
字符集声明要简单得多。 只是。
如果发现将void元素写为令人困惑,则可以使用。
HTML5在[http://validator.nu/。]上有一个非常好的验证器。验证器不受无法表达所有规则的笨拙的DTD约束。
您不必在内联脚本或样式表中添加//
您可以根据需要使用embed。
从语法上讲,当您使用HTML5时,最终会得到更整洁,更易于阅读的标记,该标记始终调用标准模式。 当您使用XHTML 1.0(用作text / html)时,要指定一堆浏览器将自动执行的操作(以便针对糟糕的dtd进行验证)。
Shadow2531 answered 2020-01-01T18:12:05Z
28 votes
在这个线索中充斥着神话和误解。
XHTML 1.0早于HTML5。它不能使用任何新词汇。 确实,它的主要卖点是使用与HTML 4.01完全相同的词汇。
没有XHTML 1.2-很有可能。 并不需要。 XHTML 5是HTML 5的XML序列化。相同的词汇,不同的解析规则。
HTML在浏览器中从未被视为真正的SGML。 从未有浏览器实现过与SGML兼容的解析器。 HTML 5将把这一事实变成规则,HTML序列化将遵循当今的事实上的标准。 也许可以说这是“ SGML式的”。
如前所述,DTD在浏览器中仅用于一个目的,那就是区分标准遵从模式和怪癖模式。 因此,它仅影响样式和脚本。 如果您在具有严格文档类型的页面上使用框架,则它们将很好地呈现。 正如甚至一样-尽管后者是可憎的,而前者不在任何当前标准中。 不过,它是HTML 5的一部分。
可以使用视频和音频,而无需序列化,XML或HTML。 它们是HTML 5和XHTML 5的一部分。解析阶段结束后,浏览器将构建文档的内部DOM。 不管序列化如何,该DOM出于所有实际目的都是相同的。 是的,与text / html一起发送的XHTML仍然是普通的html,而与doctype无关。
Matt Fenwick answered 2020-01-01T18:12:49Z
10 votes
好吧,一般来说HTML是SGML,而XHTML是用XML表示的。 因此,与HTML相比,创建XHTML具有更多的限制(以标记形式)。 (基于SGML和基于XML的HTML)
如Wikipedia所述,HTML 5也将具有XHTML变体(XHTML 5)。
经验法则:您应该始终使用有效的标记。 这也意味着您不应该在XHTML 1.0 Transitional中使用提到的或标签,因为它们不是该规范的组成部分。 如果您确实需要使用这些标签(我非常怀疑),则应确保使用HTML 5 / XHTML 5 DTD,以指定您的文档在该DOCTYPE中。
在实现的给定状态下使用HTML 5或XHTML 5(AFAIK,甚至还没有制定标准,对吗?)可能会适得其反,因为几乎所有用户可能都看不到网站的正确性。
编辑2013:由于最近的投票不足,并且(我无法删除)这个已被接受的答案,所以我想补充一点,今天HTML5的支持和标准化过程与五年前我撰写此答案时的完全不同。 由于大多数主流浏览器都支持HTML5草案的大部分内容,并且由于可以在旧版浏览器中使用polyfill修复很多内容,因此我现在主要使用HTML5。
hangy answered 2020-01-01T18:10:59Z
7 votes
您可能会以错误的方式查看问题,因为与XHTML 1.x部分的关系(HTML 5)指出:
“该规范旨在替代XHTML 1.0,作为HTML词汇表的XML序列化的规范定义。”
现在该语言是有争议的(XHTML 2 WG对此提出了争议,HTML WG试图解决这些差异...),但这就是我们目前的立场。
一些注意事项:
HTML 5包含一个称为XHTML 5的XML序列化,该规范说明了您的细节,
HTML不是SGML。 亨利·西沃宁(Henri Sivonen)在HTML解析的历史上作了出色的著述
截止到目前(这已经是一个争论不休的话题了),HTML / XHTML 5不会有DTD了-规范的“符合性要求”部分说明了为什么DTD不适合定义HTML语言 。 HTML 5验证器还包含有关此主题的大量信息(包括HTML5的RELAX NG模式)
soypunk answered 2020-01-01T18:13:37Z
4 votes
请记住,文档类型仅在浏览器中有一个用途:在怪癖,几乎标准和标准模式之间切换。 因此,使用application/xhtml+xml和将可用于任何doctype声明。 IMO使用XHTML文档类型是没有用的,因为无论如何,使用text/html发送的每个页面的MIME类型都将被解析为(标记-汤)HTML。 我建议使用HTML5 doctype(),因为它更容易记住并且不会无缘无故地使用XML语法。
他们为什么不将这些标签添加到 XHTML?
他们确实做到了,有一个HTML 5的XML序列化(XHTML5)。 要使用此功能,您必须使用XML MIME类型发送页面,例如application/xhtml+xml。但是IE尚不支持此功能。
Ms2ger answered 2020-01-01T18:14:07Z
3 votes
如果是什么行为 我将来会使用新的HTML 5标签 版本的Firefox,但将DTD用于 XHTML?
如果我将HTML 5标记与 XHTML 1.0 Trans?
如果您的标记未实现为所选DTD的一部分-那么从逻辑上讲,不应遵循该标记。 但是浏览器实现并不总是严格逻辑上的。
他们为什么不将这些标签添加到 XHTML? 我们如何同时支持XHTML 和HTML 5?
xHTML并不比HTML更好,但是它更适合某些应用程序。 xHTML的主要优点之一是可以使用XSLT将其转换为不同的格式。 例如,您可以使用XSLT自动将xHTML转换为RSS feed或另一种XML格式。
您不需要同时支持两种格式-可以根据项目的需求来权衡每种格式的收益/缺点。 HTML 5在相当长的一段时间内可能不会成为标准。
codeinthehole answered 2020-01-01T18:14:50Z
1 votes
(X)HTML5只是下一版本。 在完全支持XHTML5之前,您应该使用XHTML1.1。
您可能不应该使用HTML5的向后兼容SGML配置文件。 对于刮板器和小型解析器而言,这使事情变得更加困难。
singpolyma answered 2020-01-01T18:15:14Z
-2 votes
您的文档类型会告诉浏览器您使用的是HTML5还是XHTML。 您不能只是将标签从一种文档类型推入另一种文档类型的文档中,并期望它起作用。没有doctype,无论如何都只是标记汤。
Greg answered 2020-01-01T18:15:35Z
-2 votes
当99%的人无法在其浏览器中正确查看视频/音频标签时,请勿使用此类标签。 对于这两个示例,我建议使用FLV。
至于为什么不将其添加到XHTML中……首先不是1.0的最新版本,而1.1则是在不久前发布的。
最终,事情变得标准化了,我们将在两种标准中看到这些类型的标签,但是现在就尽您所能,以确保最多的人可以查看您的内容。
Andrew G. Johnson answered 2020-01-01T18:16:04Z