过时的HTML与弃用的HTML

12

关于HTML,“过时 (obsolete)”和“已弃用 (deprecated)”这两个术语有什么区别?我似乎看到很多元素在HTML5中被标记为“过时”...


我想提一下,我制作了一个书签小工具,可以在运行时从您的标记中删除过时的属性,并输出“生成”的源代码,以便您可以看到需要在代码中清除的内容。请随意使用它。http://keithwyland.github.com/attrebuke/ - keithwyland
4个回答

11
在HTML 4.01规范中,4.1 定义条款将“已弃用”和“废弃”的定义为技术术语。简而言之,已弃用的特性是您不应该使用的内容,但浏览器应该继续支持它。废弃的特性仅被列为历史目的,没有定义,并且不需要浏览器支持(尽管在实践中通常仍然存在)。 HTML 4.01将大多数旧的表现元素和属性声明为已弃用的。只有极少数不重要的元素被声明为废弃的。
在W3C HTML5草案中,术语不同。它根本不使用“已弃用”一词(除了在引用HTML 4.01中使用此词时)。它没有将“废弃”定义为技术术语(适用于HTML的特性),但它经常使用这个词。该词在11 废弃特性部分中隐含地定义。草案告诉作者不要使用废弃的特性,但期望浏览器继续支持它们。它还包含了它们的语法和语义的详细描述,甚至比早期规范更加详细。
在HTML5草案中,大部分已废弃的功能也被归类为“非符合性”,并声明它们“不得被作者使用”。这些功能涵盖了HTML 4.01中被弃用的大部分功能以及一些其他功能,包括根本不存在于HTML 4.01中的功能。
例如,font元素在HTML 4.01中被弃用,在HTML5中已经过时。因此,原则上,在HTML 4.01中不应该使用它,在HTML5中则必须不使用它(而且HTML5验证器会发出错误信息,而不仅仅是警告)。实际上,区别较小,主要是一个原则问题。浏览器仍然需要解析该元素并将其添加到文档树中,并且预计它们会像以前一样实现它。

谢谢!那非常有帮助! - Cameron Christensen
你最后一句话提到的“浏览器仍需要支持该元素”的参考资料是什么? - Pacerier
@Pacerier,条款11.3.4其他元素、属性和API指出:“font元素必须实现HTMLFontElement接口。”这包括旧属性。条款10.3.4短语内容描述了视觉效果。不可否认,这只是“建议的渲染”,因此我将修改措辞;这在形式上不是要求,而是强烈的建议。 - Jukka K. Korpela

7

这个词典已经很清楚地说明了:

Deprecated: 表示不赞成。

Obsolete: 不再生产或使用;过时。

建议您不要使用被废弃的元素,因为它们可能在未来不再受支持,而已废弃的元素已经停止使用。


我更喜欢这个定义中对于deprecate的解释。它的意思是通过移除或标记项目来使其无效或过时。当语言中的命令或语句计划在编译器或渲染引擎的未来版本中删除时,它们被称为已弃用。程序员应该在后续版本的程序中开始从源代码中删除它们。 - Conrad Frix
这并不是关于HTML问题的具体内容。 - StayOnTarget

0

过时通常意味着已被其他东西取代。

弃用意味着未来的开发可能不再支持它。


0
在你的问题中,你提到了一篇博客文章,随后链接到关于废弃元素的W3规范。

http://www.w3.org/TR/html5/obsolete.html#obsolete

正如您链接的博客所暗示的那样,过时的元素不应该被使用,因为有可替代的选择。对于已弃用的元素,浏览器通常仍会支持并呈现它们以实现向后兼容性,但您的页面将无法通过一致性验证。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接