2017-08-06 1 views
0

基本的には、それぞれイメージと色を含むたくさんのスタイルを生成しようとしています。色はリストされ、変数は同じ方法で名前が付けられます。問題は、私は{カラー}の近くに(動的に生成された名前を使用するサスを持つことができませんです。しかし、それはこのようにそれを使用することが可能です?ありがとう!リストに盛り付けの変数を動的に作成する

$color-style-winter: #11111; 
$color-style-christmas: #22222; 

$styles: 'winter' 'hills', 
    'christmas' 'xmas'; 

@each $name, $image in $styles { 
    .style-#{$name} { 
     background: url('../../images/styles/#{$image}.jpg'); 
    } 

    a { 
     color: $color-style- + $name; 
    } 
} 

答えて

0

私はあなたの質問を理解してわからないんだけど完全にはなくSASS補間Docsや提供品の外観を持つプレースホルダを使用し

コードは次のようになります。。。

%my-style-test1 {color: red;} 
%my-style-test2 {color: blue;} 

$style: 'test1' 'test2'; 

@each $name in $style { 

  a { 

    @extend %my-style-#{$name}; 

  } 

} 

CSS:

a { 
     color: red; 
    } 

a { 
     color: blue; 
    } 

例はあまり役に立たないですが、%のplacholderと補間

SASS Docs interpolation SASS Articel Interpolation

+0

を使用する方法を示していますこれは私が最初にやったことですが、コンパイラはそれでOKではありません:「未定義の変数:「$ 私も連結しようとしましたが、これは変数値を使用せず、生成されたCSSに変数名を書き込むだけです: color:unquote( '$ color-style-' + $ name); が生成されます。 色:$ color-style-christmas; –

+0

http://krasimirtsonev.com/blog/article/SASS-interpolation-in-a-name-of-variable-nest-variables-within-variables – Michael

+0

もう一度おねがいしますが、これは期待どおりに機能しません。私は3つのエントリのリストを使用していきます。これは現時点で最も簡単な解決策です! –

関連する問題