当前位置:  开发笔记 > 编程语言 > 正文

HTML 5与XHTML 1.0 Transitional?

如何解决《HTML5与XHTML1.0Transitional?》经验,为你挑选了4个好方法。

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



1> Shadow2531..:

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).


很好的答案.你列出了我关心的内容.

2> 小智..:

这个话题中充斥着神话和误解.

    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的页面上使用框架,它们将呈现正常.正如甚至一样 - 即使后者是憎恶而前者不是任何现行标准.不过,它是HTML 5的一部分.

    无论序列化,XML还是HTML,都可以使用视频和音频.它们是HTML 5和XHTML 5的一部分.一旦解析阶段结束,浏览器就会构建文档的内部DOM.无论序列化如何,DOM都将用于所有实际目的.是的,使用text/html发送的XHTML仍然是普通的html,无论doctype如何.



    3> hangy..:

    嗯,一般来说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.


    因为答案谈到了SGML和HTML 5/XHTML 5 DTD而被投票(尽管在其他答案中指出)HTML5不是基于SGML的,并且没有DTD.
    @pyrony:只是想知道......你是否投票给这个答案,因为它是公认的答案,并没有提供你想要的所有信息,或者因为它是错误的/不完整的?在后一种情况下,你也可能想要投下许多其他答案.:)我只是想避免在这个1.5岁的答案中获得负面声誉 - 并将其置于现代语境中并不合适,因为XHTML和HTML5的状态可能在原始问题/答案后发生了相当大的变化.

    4> 小智..:

    您可能以错误的方式查看问题,因为与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)

    推荐阅读
    oDavid_仔o_880
    这个屌丝很懒,什么也没留下!
    DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
    Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有