xhtml1.0与html5,HTML 5与XHTML 1.0过渡吗?

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值