2017-08-01 12 views
1

aye folks!sass mixinsとcssカスタムプロパティ

私は、CSSのカスタムプロパティのためのミックスミックスを作成して、作業を少し簡単にしようとしました。

私の試みは、次のようになりん:

@mixin mixin($value) { 
    background: unquote('$')#{$value}; 
    background: var(--#{$value}, unquote('$')#{$value}); 
} 

出力は次のようになります。

.example { 
    background: $value; 
    background: var(--colour, $value); 
} 

しかしSASS現物に私の$値を変換しません。 $ valueの部分は私の最終的なCSSファイルで終わり、これはうまくいきません。

私は解決策をオンラインで見つけようとしましたが、私はそれを見つけるためには愚痴か、そうでないものがあります。ここの誰かが私が間違っているアイデアを持っていますか?

+0

期待するCSS出力は何ですか? – blonfu

+0

'background:$ abcdef;'のようなものですが、sassはその変数を与えられた値に変換していないようですので、 'background:$ value; 'です。 –

+0

申し訳ありませんが、 '$ abcdef'変数に'#abcdef'を渡して '#abcdef'を得ると、あなたのコードで理解できません。なぜ補間を使用していますか? – blonfu

答えて

0

私は、この例であなたのコードを試しています

@mixin mixin($value) { 
    background: unquote('$')#{$value}; 
    background: var(--#{$value}, unquote('$')#{$value}); 
} 

.example { 
    @include mixin(colour) 
} 

、それが動作します。 出力は

.example { 
    background: $colour; 
    background: var(--colour, $colour); 
} 

です。申し訳ありませんが、この回答を作成するためにコメントを追加する権限はありません。

編集:あなたはあなたの問題を解決するために

@mixin mixin($value, $color) { 
     background: $color; 
     background: var(--#{$value}, $color); 
    } 

このヘルプ:あなたはこのような異なるミックスインを作成することができますか?

+0

私のCSS出力の変数を実際の色に置き換えないという問題はありません。私は 'background:#abcdef; 'の代わりに' background:$ color; 'を得ます。 –

+0

私の誤解をおかけして申し訳ありません。数日前、私は同じ問題を抱えていますが、Sassは変数を動的に作成またはアクセスすることができないことを発見しました。 –

+0

私はそれが正しいとすれば、そのようなミックスインを作る方法がないということを意味しますか?メー..それで大丈夫。とにかく、ありがとう! (: –

関連する問題