2012-09-20 13 views
25

何もない変数を作成しようとしています。私は..次SASS変数に何も等しくないように設定するには?

$false:null; 
$false:" "; 

- と -

私はこれであると、それを使用しようとしています...私は2つの変数を使用しています

@mixin myMixin($myVariable:"", $myOtherVariable){ 
    $false:null; 
    @if $myVariable == $false { 
     //do something 
    } 
    @if $myVariable != "" { 
     //do something else 
    } 
} 

@include myMixin("", $myOtherVariable); 

を試してみましたこの例では、私は2つ以上を持つことを計画しています。

基本的には、空の引用符を使用せずに変数を除外するオプションがあります。 $false: "";の問題は、それでも空の引用符が必要だということですか?ですから、SASSに「null/or nothing」を指定する何かが組み込まれているのだろうかと思います。私はそれがnullかもしれないと思った。しかしそれはそうではないようです。

+1

は 'NULL'が実際に*何も*値ではありませんが、それだけで3.2以上に存在します。http:// chriseppstein .github.com/blog/2012/08/23/sass-3-2-is-released/ – cimmanon

+0

@cimmanon情報をいただきありがとうございます。 –

答えて

40

nullまたはfalsenullはサスの最新バージョンで新しく追加された)動作します。両方ともあなたの例のために働くでしょう。 nullの唯一の利点は、プロパティと共に使用すると消えてしまうことです。

@mixin myMixin($myVariable: false, $myOtherVariable: false){ 
    @if not $myVariable { 
    //do something 
    } @else { 
    //do something else 
    } 
} 

@include myMixin(false, $myOtherVariable); 
+0

明確化のおかげで...言うまでもなく、あなたはNULLの使用法について私の質問に答えたと言うと、それは問題なく動作するようです。私は@include()に変数を渡さずに、私がそれを必要としなければ得ることができると期待していました。しかし、私がmaxbeatyの投稿に言及したように、それはオプションのようには思われません。とにかく、Nullで問題が発生しているので、Nullはうまく動作します。 –

+1

もう一度間違っています。 :)それはオプションです。上記のコードでは、 '$ myVariable'引数のデフォルト値として' false'を設定しています。すべての引数に対してデフォルトが設定されている限り、インクルードとともに何かを渡す必要はありません。単純に '@include myMixin;'。デフォルトなしの引数だけがインクルード行とともに渡されなければなりません。 (必要な引数も引数リストのオプション引数の前に来なければなりません) –

+0

それは意味があります。私は必要な後にオプションについて知っていたが、私はあなたがそのようなデフォルトの引数を設定できるかどうかはわからなかった。それは今あなたのミックスインを見てもっと意味をなさない。 –

-1

Sassはnullの代わりにnilを使用するrubyで書かれています。

@mixin myMixin($myVariable, $myOtherVariable){ 
    $false: nil; 
    @if $myVariable == $false{ 
    color: inherit; 
    } @else { 
    color: $myVariable; 
    } 
} 

p { 
    @include myMixin(nil, $myOtherVariable); 
} 

.red { 
    @include myMixin(red, $myOtherVariable); 
} 

Example on jsFiddle

+0

私はそれがここに当てはまるとは確信していません。私はこれが$ falseに設定されていてもうまくいくと思います。たとえば、 "nil"の代わりに "blah"という単語を使用しても、同じ結果が得られます。多分私はここで何かを逃しているでしょう。 –

+0

文字列にするために 'nil'を引用しないようにしてください。 ( 'nil'対' 'nil'') – maxbeatty

+5

' null'は正しいSassです。ドキュメントには 'nil'の記述はありません。参照:http://sass-lang.com/docs/yardoc/Sass/Script/Null.html –

0

は、変数を設定するには 'false' に

$false: false;

+0

FalseはNothingと同じものにも近くない。また、既存の回答は既にFalseのシナリオをカバーしています。 – cimmanon

関連する問題