fst*_*orr 5 css hsl sass colors
我有一个映射到 hsl 值的 Sass 变量。当我尝试将它与 hsla 一起使用来添加一点透明度时,不起作用。我正在这样做:
$white:hsl(100, 100%, 100%);
.thing{
color:hsla($white,.9);
}
Run Code Online (Sandbox Code Playgroud)
使用 gulp-sass 构建我的 CSS,我收到此错误:“在 {文件路径} 中的第 {行号} 行上调用函数 hsla 时缺少必需的参数 $lightness”
如果我用它替换它,hsla效果rgba很好,是的,我可以做到这一点,但我想将所有颜色保留在 hsl 中。有解决方法还是这是 Sass 问题?
这不是 SASS 的问题,该功能根本不存在。如果您查看文档,就会发现 rgba() 有两个版本,一种单独接受所有参数,另一种接受Color对象。
rgba($red, $green, $blue, $alpha)
rgba($color, $alpha)
如果您查看 hsla() 的文档,它只接受单独的值。
hsla($hue, $saturation, $lightness, $alpha)
为了实现你的目标,你可以这样做:
$white:hsl(100, 100%, 100%);
.thing{
color: hsla(hue($white), saturation($white), lightness($white), .9);
}
Run Code Online (Sandbox Code Playgroud)
或者...如果您想传递 Color 对象,您可以创建自己的函数,因为您不能重载函数;例如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";
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7414 次 |
| 最近记录: |