浏览器何时删除供应商前缀和实验标志?
When do browsers remove vendor prefixes and experimental flags?
我知道虽然 W3C 对某项功能的推荐仍在开发中,但它通常已经在浏览器中具有参考实现,但在供应商前缀或实验标志之后。
所以在代码中很清楚您所依赖的标准可能会发生变化。
今天我意识到这根本不是真的。我查了下我最喜欢的例子,position: sticky
,好像Firefox在2017年去掉了它的experimental flag 2014,Chrome,Edge在2017年直接引入了无前缀的特性
现在相关标准CSS Positioned Layout Level 3仍然是工作草案,这意味着在正式推荐之前可能还会有变化。
所以我还有两个问题:
- 浏览器供应商根据什么指标决定删除供应商前缀或实验标志?
- 草案中是否有一些正式的状态告诉他们(和我们)规范可以被认为足够稳定以供实施?
大部分情况恰恰相反。一个 W3C 规范只有在有两个完整的、独立的实现时才能成为建议。至少官方是这样。有时规则有点弯曲。
它没有你想象的那么重要。一旦当前使用的大多数浏览器都有可互操作的实现,与实现相关的任何规范变体通常都被视为规范中的错误,而不是实现中的错误。因此,此时该规范对于该功能实际上是稳定的,无论其状态是草案、CR、PR 还是推荐。
浏览器制造商在他们自己和规范编写者之间进行讨论,以决定他们何时实施某些内容,以及他们何时同意他们的实施已完成。 “推荐”状态只是最后一步,告诉网络作者使用它很好。
当然,只有最具防御性的网络作者才会等那么久。
我知道虽然 W3C 对某项功能的推荐仍在开发中,但它通常已经在浏览器中具有参考实现,但在供应商前缀或实验标志之后。
所以在代码中很清楚您所依赖的标准可能会发生变化。
今天我意识到这根本不是真的。我查了下我最喜欢的例子,position: sticky
,好像Firefox在2017年去掉了它的experimental flag 2014,Chrome,Edge在2017年直接引入了无前缀的特性
现在相关标准CSS Positioned Layout Level 3仍然是工作草案,这意味着在正式推荐之前可能还会有变化。
所以我还有两个问题:
- 浏览器供应商根据什么指标决定删除供应商前缀或实验标志?
- 草案中是否有一些正式的状态告诉他们(和我们)规范可以被认为足够稳定以供实施?
大部分情况恰恰相反。一个 W3C 规范只有在有两个完整的、独立的实现时才能成为建议。至少官方是这样。有时规则有点弯曲。
它没有你想象的那么重要。一旦当前使用的大多数浏览器都有可互操作的实现,与实现相关的任何规范变体通常都被视为规范中的错误,而不是实现中的错误。因此,此时该规范对于该功能实际上是稳定的,无论其状态是草案、CR、PR 还是推荐。
浏览器制造商在他们自己和规范编写者之间进行讨论,以决定他们何时实施某些内容,以及他们何时同意他们的实施已完成。 “推荐”状态只是最后一步,告诉网络作者使用它很好。
当然,只有最具防御性的网络作者才会等那么久。