2012-04-05 9 views
14

@include mixin();を変数に設定する方法はありますか? 私は特にそれを行うにはどのような方法を認識してないんだけど、あなただけのグラデーションの特定の種類に設定を乾燥させるためにしようとしている場合、あなたはそれのためのラッパーミックスインを書くことができ、このSassの変数を@mixinに設定していますか?

@mixin bg-gradient($fallback, $type, $positionX, $positionY, $from, $from-percent, $to, $to-percent){ 
    background: $fallback; 
    background: -webkit-#{$type}-gradient($positionX $positionY, $from $from-percent, $to $to-percent); 
    background: -moz-#{$type}-gradient($positionX $positionY, $from $from-percent, $to $to-percent); 
    background:   #{$type}-gradient($positionX $positionY, $from $from-percent, $to $to-percent); 
} 

$navBg: @include bg-gradient(#eee, radial, top, center, #999, 0%, #555, 100%); 
body { $navBg; } // it gave me an error 

答えて

25

を試してみました:

@mixin navBg() { 
    @include bg-gradient(#eee, radial, top, center, #999, 0%, #555, 100%); 
} 
body { @include navBg; } 

編集

Here「SASS変数によってサポートされるデータ型のSAリスト。 mixinの呼び出しやその結果(CSSルール全体)は含まれません。また、インクルードを文字列として扱い、補間しようとしましたが、それは最終的なCSSのためだけに機能し、それ以上のディレクティブは機能しません。

+2

Thnxソリューションと追加情報私は本当に感謝しています – FoxKllD

3
@mixin gradient ($place, $bcolor1, $bcolor2){`<br>` 
    background-image: linear-gradient($place, $bcolor1, $bcolor2)`<br>` 
    background-image: -o-linear-gradient($place, $bcolor1, $bcolor2)`<br>` 
    background-image: -moz-linear-gradient($place, $bcolor1, $bcolor2)`<br>` 
    background-image: -webkit-linear-gradient($place, $bcolor1, $bcolor2)`<br>` 
    background-image: -ms-linear-gradient($place, $bcolor1, $bcolor2)`<br>` 
} 

body{ 
    @include gradient(bottom, #F90000 18%, #FF4C4C 66%) 
} 
3

返される値をSASS変数に設定しようとする場合は、@関数を使用する必要がありますが、@mixinは使用しないでください。これは少しの間私を抱き、@機能を認識していなかった。ところでたとえば...

@function font($font-size, $line-height: 1.4, $font-family: Arial) { 

    @if $line-height == 1.4 { 
     $line-height: round($line-height*$font-size); 
    } 

    @return #{$font-size}/#{$line-height} $font-family; 
} 

$font-medium: font(20px); 

、これは、このユーザーが正確に探しているものは扱っていませんが、これは私はミックスインにVARの設定に関するインターネット検索にポップアップする唯一の事についてですこの状況が発生した場合、他の人が何をすべきか知るためにここでこれを共有したいと考えました。

+0

OPのユースケースは、単一の戻り値を期待していないため、役に立たないでしょう。 – cimmanon

+0

ハードコーディングされた値で 'function'を作成するのはなぜですか?ちょっと敗北ポイント? –

関連する問題