这看起来奇怪吗?
.element {
background: color(#eb8fa9 alpha(75%) blackness(20%));
}
这是来自 CSS 工作组草案规范 的“颜色函数”。我认为它完全是为了使颜色更容易和更直观地使用。对我来说,作为一名经常使用 Sass 颜色操作函数的人,它看起来很棒。
Tyler Gaw 创建了一个 很酷的工具 来玩它

我在规范中注意到,这实际上似乎是 color-mod(),而不是 color()
。它可能发生了变化,因为我看到有一些 文章 和 插件 将其称为 color()
。
这就是尝试使用您认为它将使用的确切名称来填充未来 CSS 的危险所在。如果您是对的,希望有一天您可以将其删除,一切都会好起来。如果错了,您将永远无法停止使用它,因为剩下的代码将无法工作(除非您重写它)。您还希望 polyfill 以一种利用新语法的方式编写,而不是仅将其处理为旧语法。我认为我更喜欢有目的的不同命名的抽象。
感谢您发布此内容,Chris!
您是对的,颜色函数的命名和语法仍在变化中。我找到的关于它的最新信息是此问题 https://github.com/w3c/csswg-drafts/issues/813
所以我不确定它是否打算称为“color”或“color-mod”。草案规范中的示例仍然使用“color”。TBD 似乎很合适。
今天关于此的一件很酷的事情是 ColorMe 正在使用此包;https://github.com/ianstormtaylor/css-color-function 用于将颜色函数字符串转换为 rgb(a) 字符串。因此,如果/当规范中的名称更改时,该插件可以更新以反映该更改并作为新版本发布。
您也说得对,那里存在危险。这绝对是早期阶段。但我认为一件好事是这些变化不会发生在浏览器中。由于我们正在使用转译为今天有效的 CSS 的 JS 抽象,因此我们可以进行实验和测试,以查看提议的功能是否是我们想要的。并希望这样做不会从浏览器的 CSS 实现中添加一堆难以删除的废料,例如备用语法和供应商前缀。
随着这种情况的变化,我将尝试记录我最终对 ColorMe 和相关用法的操作步骤。这对后代来说将是件好事。
我也一直在使用 css-color-function,并结合 CSS in JS 方法(styled-components)非常开心。
将来,我预计只需查找并替换
…一切就绪!
已提交:https://github.com/w3c/csswg-drafts/issues/868
“我认为我更喜欢有目的的不同命名的抽象”
如果您喜欢 Sass 颜色函数,请务必查看 SassMe。它执行 colorme 的操作,但在 Sass 中:http://jim-nielsen.com/sassme
天才!对于那些容易忘记关闭括号的人来说,这真是太棒了!
CSS4 颜色函数很棒,但说实话有点令人困惑。我创建了一个
备忘单 供我自己使用,以便能够从技术层面理解正在发生的事情。
性能如何?使用 CSS 预处理器函数的一个主要优势是它们只计算一次,而不是在客户端计算。
我想知道 CSS4+ 函数是否会变得过于冗长和大量使用,从而对页面速度/加载时间产生负面影响。