Css 使用映射到hsl值的Sass变量不会';当尝试与hsla一起使用时,它不起作用

Css 使用映射到hsl值的Sass变量不会';当尝试与hsla一起使用时,它不起作用,css,colors,sass,hsl,Css,Colors,Sass,Hsl,我有一个映射到hsl值的Sass变量。当我尝试将它与hsla结合使用以增加一点透明度时,它不起作用。我正在这样做: $white:hsl(100, 100%, 100%); .thing{ color:hsla($white,.9); } 使用gulp sass构建CSS时,我遇到以下错误:“调用{file's path}中{line number}行上的函数hsla时缺少必需的参数$lightness” 如果我用rgba替换hsla,效果很好,是的,我可以这样做,但我想保留hsl中的所有

我有一个映射到hsl值的Sass变量。当我尝试将它与hsla结合使用以增加一点透明度时,它不起作用。我正在这样做:

$white:hsl(100, 100%, 100%);

.thing{
 color:hsla($white,.9);
}
使用gulp sass构建CSS时,我遇到以下错误:“调用{file's path}中{line number}行上的函数hsla时缺少必需的参数$lightness”


如果我用
rgba
替换
hsla
,效果很好,是的,我可以这样做,但我想保留hsl中的所有颜色。是否有解决方法或这是Sass问题?

这不是Sass的问题,功能根本不存在。如果查看,rgba()有两个版本,一个单独接受所有参数,另一个接受对象


如果查看hsla()的文档,它只接受单独的值

为了实现您的目标,您可以这样做:

$white:hsl(100, 100%, 100%);

.thing{
 color: hsla(hue($white), saturation($white), lightness($white), .9);
}
或者。。。如果要传递颜色对象,可以创建自己的函数;e、 g.
hslac($color,$alpha)

@function hslac($color, $alpha) {
  @if(type-of($color) == "color") {
    @return hsla(hue($color), saturation($color), lightness($color), $alpha);
  }
  @else {
    @error "You didn't pass a color object";
  }
}