2017-04-03 15 views
1

mixinsを使って、新しい変数の値を定義することができるのではないかと思っています。mixinsを使って変数の値を変更する

私は私が構築していますウェブサイト全体のパディングサイズを定義するために変数を使用するのが良いだろうと思いました。私はミックスインとメディアのクエリを使って新しい価値を定義することができたという考えです。働く方法がある私は、これは超便利だと思うが、それは...仕事を得ることができない

$site-padding: 40px; 

@include media-over-767 { 
    $site-padding: 20px; 
} 

の例では、より多くの意味を作るのでしょうか?

+0

を。変数の仕組み(mixinとスコープ変数)の詳細については、[this thread](http://stackoverflow.com/questions/5469931/sass-variable-default-scope)の回答を参照してください。 – Fahrenheit

答えて

0
@mixin site-padding{ 
    $site-padding: 20px; 
} 

@include media-over-767 { 
    @include site-padding; 
} 
+0

サイトパディングはどのようにパディングに変換されますか? 'padding:20px'を追加することにこれを分解する別のミックスインはありますか? これまで私はsassでこれを実行していません。 – gwally

+1

パディングの質問は答えには関係ありませんが、ミックスインが必要な場合はパディングを設定するために使うことができます。 @mixinパディング - 全て($上、$右、$底、左$){ パディングトップ:$トップ。 padding-right:$ right; padding-bottom:$ bottom; padding-left:$ left; } –

+0

説明と例をありがとうございます。 – gwally

0

私は、これはあなたが探して正確に何であるかどうかわからないんだけど、うまくいけば、それをあなたを正しい道に導きます。ミックスイン宣言します。その例では

@mixin site-padding($padding:40px) { 
    padding: $padding; 
} 

を、私は40pxのデフォルト値でミックスインsite-paddingを設定します。

あなたのSASSはこのようなものになります

:@JinuKurianはすでに答えた場合でも、私はあなたが問題のこれらの並べ替えを解決するために別のパスにあなたを置いてもよいSASSでのスコープの変数を見てみるべきだと思い

.element { 
    // Small screens 
    @include site-padding(20px); 

    // Over 767px 
    @media screen and (min-width: 768px) { 
     // Defaults to 40px. 
     @include site-padding(); 
    } 
} 
関連する問題