属性状态:已弃用或已过时?
Posted
技术标签:
【中文标题】属性状态:已弃用或已过时?【英文标题】:Status of Attributes: Deprecated or Obsolete? 【发布时间】:2012-11-06 13:09:48 【问题描述】:我是 html 5 的新手,我有一些问题需要在 diverse W3 HTML 标准化文档中找出来获取属性的状态。
例如,自 HTML 4.01 起,不应再使用 <body>
元素的 bgcolor
属性。它已被弃用。 (见:http://www.w3.org/TR/html4/present/graphics.html#h-15.1.1)。
但是它在 HTML 5 中的状态是什么?在 HTML 标记规范中,该属性被标记为过时(参见:http://www.w3.org/TR/html-markup/body.html)。
这是否意味着该属性在 HTML 5 中不再存在?
考虑编写符合标准的客户端,我应该与文档中的哪个参考相关,以便对属性进行精确和定义的处理?只是因为它已经过时而放弃它?把它放在那里,否则就充耳不闻(有属性节点但没有意义)?
标准化文件中记录在哪里?
【问题讨论】:
您对 W3 的“官方”立场有疑问吗?用户代理应该如何处理过时的功能? @Dale 可以指定您指向的部分,因为此链接没有意义 @Mr Lister:我的理解是正确的,HTML 5定义了如何处理不同的状态。可以肯定的是,记录在案的立场,否则要求这样做是没有建设性的。我的意思是我不能拔出 Netscape 2.01 Gold 并说它是这样做的。好吧,我可以,但这不是我要求的;) 是的。好吧,HTML 4 允许用户代理保留未知属性的值(例如,它们可以被 javascript 查询),但 HTML5 不允许,所以如果您需要在元素中放置值,请使用 data -* 属性,因为这就是它们的用途。我希望我能找到官方参考,所以我可以给你一个链接。 @hakre - 实际上,3.2 DTD 并没有说明如何处理 bgcolor,它只是表明它是有效的。 3.2 spec 说它是文档正文的背景颜色,但没有定义这意味着什么。精确的渲染细节留给后面的 CSS 规范来定义。 【参考方案1】:如果您询问用户代理应该做什么,对于 <body>
元素上的 bgcolor 的情况,这是在 Rendering Section 中为 HTML5 定义的,它说:
当body元素设置了bgcolor属性时,新值是 预计将使用解析旧颜色的规则进行解析 值,如果不返回错误,用户代理是 期望将属性视为设置 元素的 'background-color' 属性到结果颜色。
【讨论】:
那么这是为具体元素名称的每个具体属性名称指定的吗?还是有一般规律?那么过时的含义是什么?在哪里定义属性过时的含义? 'Obsolete' 表示网络作者不应使用它们。元素或属性是否过时与用户代理的实现无关。 嗯,看起来整个bgcolor
属性已经在HTML5 中重新定义了。所以此举是先废弃它以忽略早期的 HTML 版本规则(因为它之前被弃用,现在已经过时,不再存在),然后引入新的含义和规则进行处理。将其标记为过时并重新定义可能更直接。
我不这么认为。在浏览器中,HTML5 中的 bgcolor 做了一直以来所做的事情。它已经过时了,因为作者应该改用 CSS。但是浏览器也需要支持旧的网页,所以他们需要向后兼容地对待 bgcolor。
@hakre - 那是因为它不存在,因为它不是真的。以上是关于属性状态:已弃用或已过时?的主要内容,如果未能解决你的问题,请参考以下文章
disconnect() 已弃用:请改用 shouldEstablishDirectChannel 属性
如何修复“'dexOptions(Action<DexOptions>): Unit' 已弃用。设置 dexOptions 已过时。”?