2013-06-20 11 views
43

で複数の条件(AND)を使用して、私は私が今使用してどのようなIF文でSASSを使用して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)} 
} 

が複数のコンディットを持っていることは可能ですイオン?サス言語リファレンスドキュメントから

答えて

82

ブール演算

SassScriptはandor、およびブール値のためnot演算子をサポートしています。

(link)

だから、複合条件付きif文の式は次のようになります。

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

さらに、括弧は、より複雑な式で演算の順序に影響を与えるために使用することができます。

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

ありがとうございます。 – 500

+2

他の誰かがこの問題に遭遇する場合、 'and'部分はすべて小文字でなければなりません - AND(すべての大文字)を使用しても機能しません。 – cantera

+0

どういうわけか私はJSのようにおしゃべりで '&&'を使っていました!解明してくれてありがとう! –

2

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

しかし注意してください:

  1. は、あなたがやろうとしているものは非常に明白ではないかもしれません。
  2. 数値またはnullを返します。ブール値ではありません。
関連する問題