在SASS IF语句中使用多个条件(AND)

使用SASS,我想在IF语句中有多个条件

我现在使用的是:

@function color-x ($alpha) { @if $accent == red {@return red($alpha)} @else if $accent == green {@return green($alpha)} @else if $accent == blue {@return blue($alpha)} } 

我天真(失败)尝试使用多个条件:

 @function color-x ($alpha) { @if $accent == red && theme == light {@return red($alpha)} @else if $accent == green && theme == light {@return green($alpha)} @else if $accent == blue && theme == light {@return blue($alpha)} } 

是否有可能有多个条件?

从Sass语言参考文档:

布尔运算

SassScript支持andor ,而not运算符的布尔值。

(链接)

所以一个if语句expression式和复合条件看起来是这样的:

 @if $var1 == value1 and $var2 == value2 { // ... } 

此外,可以使用括号来以更复杂的expression式来影响操作的顺序:

 @if ($var1 == value1 and not ($var2 == value2)) or ($var3 == value3) { // ... } 

你也可以这样做:

 @if index("foo" "bar", $value) { .. } 

当然要小心:

  1. 你试图做什么可能不是很明显。
  2. 它返回一个数字或null ,而不是布尔值。