【发布时间】:2012-08-02 19:17:30
【问题描述】:
关于 HTML 的术语“过时”和“弃用”有什么区别?我似乎看到很多元素在 HTML5 中被标记为“过时”...
【问题讨论】:
-
只是想提一下,我制作了一个小书签,用于即时从您的标记中删除过时的属性,它会吐出“生成”的源代码,以便您可以看到需要在代码中删除的内容。随意使用它。 keithwyland.github.com/attrebuke
标签: html
关于 HTML 的术语“过时”和“弃用”有什么区别?我似乎看到很多元素在 HTML5 中被标记为“过时”...
【问题讨论】:
标签: html
在 HTML 4.01 规范中,子句 4.1 Definitions 将“弃用”和“过时”定义为技术术语。简而言之,不推荐使用的功能是您不应该使用的,但浏览器应该继续支持它。过时的功能只是出于历史目的而列出,未定义,并且不需要浏览器支持(尽管实际上它通常仍然存在)。 HTML 4.01 声明大多数旧的表示元素和属性已弃用。只有少数非常不重要的元素在那里被宣布为过时。
在 W3C HTML5 草案中,术语有所不同。它根本没有使用“弃用”这个词(除非在 HTML 4.01 中提到使用这个词)。它没有将“过时”定义为技术术语(适用于 HTML 的功能),但它大量使用了这个词。该词在11 Obsolete features 部分中隐含定义。该草案告诉,根据功能的不同,语气和专业有所不同,作者不要使用过时的功能,但希望浏览器继续支持它们。它还包含对其语法和语义的详细描述,部分甚至比旧规范更详细。
在 HTML5 草案中,大多数过时的功能也被归类为“不合格”,并声明它们“不得被作者使用”。这些功能涵盖了 HTML 4.01 中已弃用的大部分功能,以及更多功能,包括 HTML 4.01 中根本没有的功能。
例如,font 元素在 HTML 4.01 中已弃用,在 HTML5 中已过时。所以原则上,你不应该使用 HTML 4.01,HTML5 说你不应该使用它(并且 HTML5 验证器被告知发出错误消息,而不仅仅是警告)。在实践中,差异较小,主要只是原则问题。浏览器仍然需要解析元素并将其添加到文档树中,并且它们应该像以前一样实现它。
【讨论】:
字典很好地讲述了这个故事:
Deprecated:表示不赞成。
Obsolete:不再生产或使用;过时了。
建议不要使用deprecated elements,因为将来可能不再支持它们,而obsolete 元素已经停止使用从使用开始。
【讨论】:
过时通常意味着它已被其他东西取代。
已弃用意味着未来的发展可能不支持它。
【讨论】:
在您的问题中,您引用了一篇博文,该博文随后链接到有关过时元素的 W3 规范。
http://www.w3.org/TR/html5/obsolete.html#obsolete
因此,由于您链接到的博客回避,不应使用过时的元素,有可用的替代品。对于已弃用的元素,浏览器通常仍会支持并呈现它们以实现向后兼容,但您的页面将无法通过一致性验证。
【讨论】: