在sass函数中使用css变量-Node-sass

Dan*_* R. 12 sass css-variables node-sass sass-loader

我正在尝试在Angular项目中将CSS变量与Sass函数一起使用(准确地说是lighten()/ darken()),据我所知,最新版本的LibSass允许它。

我已经安装node-sass@4.11.0sass-loader@7.1.0(和角V7.3.0),但我却收到错误

参数$ color of lighten($ color,$ amount)必须是颜色

我想念什么吗?
谢谢!

Kel*_*Lai 6

不幸的是,你不能......lighten在编译时是一个 SASS 函数,而 CSS 变量是运行时变量。

您可以将 SASS 变量转换为 CSS 变量,但不能反过来。

总而言之,如果您需要调用 SASS 函数,只需使用 SASS 变量(作为这些函数的参数)。

来自维护者的更多解释node-sasshttps :
//github.com/sass/node-sass/issues/2251#issuecomment-372009293

预期的输出是不可能的,因为 rgba(color, alpha) 是一个 Sass 函数。
color 参数必须是 Sass Color 类型。
Sass 不评估 css 自定义属性值,因为这些是运行时变量。


Tek*_*ary 0

使用 SASS 变量代替 css 变量怎么样?如果您定义 SASS 变量 $color 然后在 sass lighten 函数中使用它应该可以修复此错误。

  • 我知道这一点,但这不是我的目的。与 SCSS 汽车不同,CSS 变量更加一致,并且可以在 JS 中进行操作。 (3认同)