scss each loop with list - SassError: $color: XX,XX,XX is not a color
scss each loop with list - SassError: $color: XX,XX,XX is not a color
我正在尝试在 scss 中编写一个循环,它接受一个列表并使用每个循环的 $key、$val 来填充和命名 @keyframes 规则。这是我的代码:
$alarmRgb: 255, 213, 0;
$infoRgb: 25, 97, 166;
$warnRgb: 240, 111, 50;
$errorRgb: 228, 35, 38;
$successRgb: 0, 149, 52;
$pulseList:(
alarm: $alarmRgb,
info: $infoRgb,
warn: $warnRgb,
error: $errorRgb,
success: $successRgb
);
@each $key, $val in $pulseList {
@keyframes pulse-#{$key} {
0% {
box-shadow: 0 0 0 0 rgba(unquote(#{$val}), 0.7);
}
70% {
box-shadow: 0 0 0 10px rgba(unquote(#{$val}), 0);
}
100% {
box-shadow: 0 0 0 0 rgba(unquote(#{$val}), 0);
}
}
}
所以我将 rgb 值创建为变量(但不是 A 值),然后使用这些变量创建列表,创建循环并尝试将 3 个数字值放入 box-shadow,rgba 值中。但是我收到错误:SassError: $color: 255, 213, 0 is not a color.
我从循环中删除了 unquote
方法,但它不起作用。我将我的变量更改为字符串值,然后重新应用到 unquote 方法,这没有用。我不确定我能做些什么来让我的 scss 循环使用我列表中的值。谁能告诉我我做错了什么?提前致谢。
我通过以下修改得到了这个...
$alarmRgb: rgb(255, 213, 0);
$infoRgb: rgb(25, 97, 166);
$warnRgb: rgb(240, 111, 50);
$errorRgb: rgb(228, 35, 38);
$successRgb: rgb(0, 149, 52);
$pulseList:(
alarm: $alarmRgb,
info: $infoRgb,
warn: $warnRgb,
error: $errorRgb,
success: $successRgb
);
@each $key, $val in $pulseList {
// pulse animation for info #{$key}
@keyframes pulse-#{$key} {
0% {
box-shadow: 0 0 0 0 rgba($val, 0.7);
}
70% {
box-shadow: 0 0 0 10px rgba($val, 0);
}
100% {
box-shadow: 0 0 0 0 rgba($val, 0);
}
}
}
我正在尝试在 scss 中编写一个循环,它接受一个列表并使用每个循环的 $key、$val 来填充和命名 @keyframes 规则。这是我的代码:
$alarmRgb: 255, 213, 0;
$infoRgb: 25, 97, 166;
$warnRgb: 240, 111, 50;
$errorRgb: 228, 35, 38;
$successRgb: 0, 149, 52;
$pulseList:(
alarm: $alarmRgb,
info: $infoRgb,
warn: $warnRgb,
error: $errorRgb,
success: $successRgb
);
@each $key, $val in $pulseList {
@keyframes pulse-#{$key} {
0% {
box-shadow: 0 0 0 0 rgba(unquote(#{$val}), 0.7);
}
70% {
box-shadow: 0 0 0 10px rgba(unquote(#{$val}), 0);
}
100% {
box-shadow: 0 0 0 0 rgba(unquote(#{$val}), 0);
}
}
}
所以我将 rgb 值创建为变量(但不是 A 值),然后使用这些变量创建列表,创建循环并尝试将 3 个数字值放入 box-shadow,rgba 值中。但是我收到错误:SassError: $color: 255, 213, 0 is not a color.
我从循环中删除了 unquote
方法,但它不起作用。我将我的变量更改为字符串值,然后重新应用到 unquote 方法,这没有用。我不确定我能做些什么来让我的 scss 循环使用我列表中的值。谁能告诉我我做错了什么?提前致谢。
我通过以下修改得到了这个...
$alarmRgb: rgb(255, 213, 0);
$infoRgb: rgb(25, 97, 166);
$warnRgb: rgb(240, 111, 50);
$errorRgb: rgb(228, 35, 38);
$successRgb: rgb(0, 149, 52);
$pulseList:(
alarm: $alarmRgb,
info: $infoRgb,
warn: $warnRgb,
error: $errorRgb,
success: $successRgb
);
@each $key, $val in $pulseList {
// pulse animation for info #{$key}
@keyframes pulse-#{$key} {
0% {
box-shadow: 0 0 0 0 rgba($val, 0.7);
}
70% {
box-shadow: 0 0 0 10px rgba($val, 0);
}
100% {
box-shadow: 0 0 0 0 rgba($val, 0);
}
}
}