无法将SCSS变量设置为CSS变量?

74

考虑以下 SCSS 代码:

$color-black: #000000;

body {
    --color: $color-black;
}

使用 node-sass 4.7.2 编译时,将生成以下 CSS:

body {
    --color: #000000; 
}

当我使用版本 4.8.3 或更高版本编译相同的 SCSS 时,它会产生以下结果:

body {
    --color: $color-black; 
}
我错过了什么? 我查看了发布日志,但没有找到有用的信息。此外,如果这个更改是真实的,为什么只有小版本更改?不应该是一个大版本发布吗?
同时,我的替代选择是什么? 我应该使用插值法吗?

7
可以使用字符串插值,即 --color: #{$color-black};。参考:https://github.com/sass/node-sass/issues/2336 - Terry
3个回答

140

14

scss和css

我找到了一种将scss变量映射到css变量的解决方案。

请参考Terry的答案以获得更好的使用体验。

Scss:

// sass variable map 
$colors: (
  color-black: #FFBB00
);

// loop over each name, color
:root {
  // each item in color map
  @each $name, $color in $colors {
    --#{$name}: #{$color};
  }
}

Css(层叠样式表):

:root {
  --color-black: #FFBB00;
}

3

我遇到了旧版Sass的问题。

试图从一个数组中编译变量列表时,会卡在双破折号处。以下是我的解决方案,希望对某些人有所帮助。


$var-element:'--';

:root {
    @each $color in $color-variables {
     #{$var-element}#{nth($color, 1)}: #{nth($color, 2)};   
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接