HTML4是否与HTML5向前兼容?

时间:2013-11-25 15:43:39

标签: html html5 web standards html4

从作者/服务器的角度来看,HTML4是否与W3C HTML5向前兼容? 或者,从HTML引擎开发者/客户端的角度来看,W3C HTML5是否向后兼容HTML4?

我意识到直观的答案是肯定的,但我发现这种直觉常常是因为几乎所有浏览器都支持 HTML4和HTML5功能。 HTML5弃用了一些东西,所以我认为只有 支持HTML5的用户代理(没有任何其他doctype的概念)会对HTML4特定的东西产生一些麻烦。

因此,另一种表达问题的方法是:HTML5规范是否涵盖所有 HTML4涵盖的内容,并且要求实现在指定的,定义的或实现中降级 - 遇到过时功能时的定义方式?通常认为这些方式可以保证HTML4文档可用吗? (因为,不仅要求实现错误输出或忽略过多的东西。)

3 个答案:

答案 0 :(得分:2)

不,HTML 4文档通常不是有效的HTML5文档。对于HTML 4严格文档,答案是相同的,但就此而言,不兼容性可以以相当紧凑的形式列出(例如,大约六页左右)。一个简单的语法示例是acronym元素,它符合HTML 4,不符合HTML5。一个更复杂的问题是small元素:在HTML 4中,它意味着更小的字体大小;在HTML5中,它有一个模糊的“语义”定义为“小字体” - 所以HTML 4文档有效地使用small仅用于较小的字体大小不符合HTML5。

没有规范和严格的差异清单。请注意,HTML5正在进行中(HTML 4有一些模糊性,即使它是正式的“最终”)。

对于在HTML5中声明为nonforming的大多数HTML 4功能,HTML5需要在浏览器中继续提供支持。

HTML5并未涵盖HTML 4涵盖的所有内容,甚至包含描述性内容。除了声明大部分HTML 4已经过时之外,它还完全没有指定一些HTML 4功能。

答案 1 :(得分:1)

  

HTML5规范是否涵盖HTML4涵盖的所有内容,是否需要在遇到过时的功能时以指定的,定义的或实现定义的方式降级实现?

基本上,是的。涵盖HTML4以及所有先前版本所需的所有内容,甚至涵盖<xmp><plaintext>之类的奇特内容。

目前的浏览器实际上并不特别支持HTML4,它们将HTML4文档解释为HTML5,具有各种级别的向后兼容性怪癖。

有几种文档模式,例如怪癖/几乎标准/标准和HTML / XML模式,但HTML4 / HTML5行没有划分(例如,带有完整严格DOCTYPE的HTML4与正确的HTML5相同)。即使您将文档标记为HTML2.0,<video>也会有效,即使您使用HTML5 DOCTYPE,<isindex>也会有效。

尽管HTML5使某些HTML4元素不符合,但它仍然定义它们,并且仍然需要浏览器来支持它们(作者的HTML5要求与浏览器供应商的HTML5要求不同):

http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html

HTML5旨在完全向后兼容HTML4-as-on-the-web,并故意忽略HTML4规范的理论方面,例如:它与IE6的HTML tagoup解析器相比,与HTML4应该具有的SGML语法更兼容 - 因为这是网上大多数网站实际上兼容的。

答案 2 :(得分:0)

简答:不,HTML4与HTML5不兼容(从doctype定义开始)。

答案很长:http://www.w3.org/TR/html5-diff/