【问题标题】:What does it mean that a CSS keyword is considered 'experimental'?CSS 关键字被认为是“实验性的”是什么意思?
【发布时间】:2019-11-19 05:55:05
【问题描述】:

我一次又一次地阅读 MDN 上一个非常有趣的 CSS 属性,只是看到 MDN 认为它可以采用一些值“experimental”,建议不要在生产中使用它并警告说它的行为将来可能会改变。

两个例子:width: max-contentdisplay: contents

  • “实验性”属性或值究竟意味着什么?它是 MDN 赋予此类关键字的状态,还是适当的标准化机构(也许是 W3C?)赋予该关键字的官方状态?
  • 如果 MDN 的警告没有过期,我在哪里可以找到?例如对于max-content,MDN 链接到this standard document,但我在paragraph about max-content 中看不到关于实验性质的警告 - 也许链接到的整个 MDN 文档都是实验性的?

上下文:我问这个问题是因为我非常喜欢同时使用width: max-contentsdisplay: contents,两者似乎都让我的生活变得更加简单,我想知道是否( a) 可以使用它们,(b) 我不应该使用它们,(c) 我真的真的不应该使用它们?

【问题讨论】:

  • 他们仍处于草稿模式。您可以在这里查看:developer.mozilla.org/en-US/docs/Web/CSS/width#Specifications ...您可以使用绿色中定义的内容,但红色仍在进行中
  • 如果你想使用它来了解支持,请检查:caniuse.com/#feat=intrinsic-width ...一些属性仍在草稿中,但在某些浏览器的最新版本中实现
  • @TemaniAfif 嘿,你自己推荐我使用 display: contents; 前一段时间(stackoverflow.com/a/53346538/4385532) - 我可以问你为什么认为使用它是可以的,尽管它具有“实验性”性质?我只是想更多地了解什么时候可以使用,什么时候不可以使用。
  • 因为我知道它很快就会成为一个标准,并且未来所有的浏览器都会支持它。我说过你可以使用绿色的东西,因为它是安全的,但我从来没有说过你不必使用红色的东西。我使用了许多仅在 Chrome/Fifrefox 中实现的新功能,并且在旧浏览器、IE、Edge 等中缺乏支持......这就是为什么我给你第二个链接,这对于了解该属性的支持很重要你将使用的。如果有 0 支持:不要使用它。如果某些新浏览器已经支持它,则取决于您的受众群体来决定

标签: css language-lawyer standards terminology


【解决方案1】:

基本上,这意味着使 CSS 正常工作的开发人员正在创建并非在每个主要浏览器中都可用的新功能,并且随着他们的继续开发很可能会被删除。将其视为对新 CSS 声明的 alpha 测试。理论上,每个 CSS 标识符在某些时候都是“实验性的”,然后被移到“稳定”。最终,如果它失宠,它就会变成“已弃用”。

您可以在这里找到更多信息:https://developer.mozilla.org/en-US/docs/MDN/Contribute/Guidelines/Conventions_definitions

这是一个让您也可以查看跨浏览器兼容性的网站:https://caniuse.com/

【讨论】:

  • 如果这回答了您的问题,您能否将其标记为已解决以提高可见性? (斜线把它从问题板上拉下来)
  • 两个很好的答案,相得益彰。我有一个棘手的问题,我不能把这个绿色勾号一分为二,不管我多么努力☺ 支持,但是,我可以投无限制☺
【解决方案2】:

在你的链接文档(CSS Box Sizing Module Level 3 Editor’s Draft, 5 June 2019)的最开始,有这一段

[...]这是编辑草稿的公开副本。它仅供讨论随时可能更改。它在此处的发布并不意味着 W3C 对其内容的认可。除了作为正在进行的工作之外,不要引用此文档。[...]。

因此,只要 css 属性仅列在规范的 draft 中,它就必须被视为实验性的,因为它甚至不能保证它会最终确定。如果不可行,草稿已被完全拒绝或在过去进行过重大改写。

如果您查看此链接https://www.w3.org/TR/css-sizing-3/,您会看到当前版本的CSS Intrinsic & Extrinsic Sizing Module Level 3 仍然是W3C Working Draft, 22 May 2019

[...]这是一份草稿文档,可能随时被其他文档更新、替换或废弃。除了正在进行的工作之外,引用本文档是不恰当的[...]。

因此,要确定一个属性或值是否仍处于试验阶段,您需要检查它的定义位置以及这些规范是否是最终的。

如果这些规范是最终的,那么属性/值不再是实验性的,您只需要检查它是否在浏览器中可用,例如使用caniuse.com

【讨论】:

    猜你喜欢
    • 2011-02-14
    • 2010-10-29
    • 2011-10-28
    • 1970-01-01
    • 2020-02-08
    • 2010-09-12
    相关资源
    最近更新 更多