在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支持
and
,or
,而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) { .. }
当然要小心:
- 你试图做什么可能不是很明显。
- 它返回一个数字或
null
,而不是布尔值。