Firefox 3.1和其他浏览器似乎(部分)支持HTML 5.它正在添加对视频和音频的支持作为标签,但这些是XHTML 1.0 Transitional无法识别的新标签.如果我在未来版本的Firefox中使用新的HTML 5标记但是使用DTD for XHTML,应该是什么行为?如果我将HTML 5标记与XHTML 1.0 Trans混合怎么办?
这让人感到困惑.为什么他们不只是将这些标签添加到XHTML?我们如何支持XHTML和HTML 5?
HTML 5视频:http://www.youtube.com/watch?v = xIxDJof7xxQ
HTML5比XHTML 1.0更容易编写.
您不必手动声明" http://www.w3.org/1999/xhtml "命名空间.
您不必为脚本和样式元素添加类型属性(它们默认为text/javascript和text/css).
您不必使用长文档类型,浏览器只会忽略其中的大部分内容.您必须使用,这很容易记住.
您无法选择在doctype中包含或不包含dtd uri,并且您无法在transitional和strict之间进行选择.您只需要一个严格的doctype来调用完整标准模式.这样,您不必担心意外处于几乎标准模式或Quirks模式.
charset声明更加简单.它只是.
如果您发现将void元素写为
HTML5在http://validator.nu/上有一个非常好的验证器.验证器不受无法表达所有规则的糟糕DTD的约束.
您不必在内联脚本或样式表(在某些情况下)中添加//
如果需要,您可以使用嵌入.
只是语法方面,当您使用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只为IN BROWSERS提供一个目的,那就是区分标准兼容模式和怪癖模式.因此它只影响样式和脚本.如果您在具有astrict doctype的页面上使用框架,它们将呈现正常.正如
无论序列化,XML还是HTML,都可以使用视频和音频.它们是HTML 5和XHTML 5的一部分.一旦解析阶段结束,浏览器就会构建文档的内部DOM.无论序列化如何,DOM都将用于所有实际目的.是的,使用text/html发送的XHTML仍然是普通的html,无论doctype如何.
嗯,一般来说HTML是SGML,XHTML是用XML表示的.因此,创建XHTML与HTML相比有更多限制(以标记的形式).(基于SGML和基于XML的HTML)
如维基百科上所述,HTML 5也将具有XHTML变体(XHTML 5).
经验法则:您应该始终使用有效标记.这也意味着您不应该使用XHTML 1.0 Transitional中提到的或
标记,因为它们不是该规范的元素.如果你真的需要使用那些标签(我非常怀疑),那么你应该确保使用HTML 5/XHTML 5 DTD来指定你的文档在那个DOCTYPE中.
在给定的实现状态下使用HTML 5或XHTML 5(AFAIK,标准甚至没有解决,但是,正确吗?)可能适得其反,因为几乎所有用户都可能看不到网站呈现的相关性.
编辑2013:由于最近的downvotes和由于这个被接受的答案无法删除(由我),我想补充一点,HTML5的支持和标准化过程现在与我五年前写这个答案时的完全不同.由于大多数主流浏览器都支持HTML5草案的大部分内容,并且因为在旧浏览器中可以使用polyfill修复很多内容,所以我现在主要使用HTML5.
您可能以错误的方式查看问题,因为与XHTML 1.x部分的关系,HTML 5指出:
"该规范旨在取代XHTML 1.0作为HTML词汇表的XML序列化的规范定义."
现在这种语言是有争议的(XHTML 2 WG已经对它提出异议并且HTML工作组试图解决这些差异......)但这就是我们现在所处的位置.
几个笔记:
HTML 5包含一个称为XHTML 5的XML序列化,该规范解释了如果您了解细节的细节
HTML不是SGML.Henri Sivonen对HTML解析的历史做了很好的写作
截至目前(这已成为辩论的主题几次),HTML/XHTML 5将不会有DTD - 规范的一致性要求部分解释了为什么DTD不适合定义HTML语言.在HTML 5的验证还包含了丰富的信息,关于这个主题(包括RELAX NG模式为HTML5)