1

scssで任意の文字列をレンダリングすることは可能ですか?プロパティ値をレンダリングできます。

/*source scss*/
$some-color: #123456;
a {color: $some-color;}

/*compiled css*/
a {color: #123456;}

または#{}補間構文を使用したセレクター/プロパティ名:

/*source scss*/
$some-class: 'my-awesome-link';
$some-attribute: border;
a.#{$some-class} {#{$some-attribute}-color: #000;}

/*compiled css*/
a.my-awesome-link {border-color: #000;}

しかし、私は以下を使用することはできません:

/*source scss*/
$some-css: 'text-decoration:none;color:#000';
a {$some-css}  //breaks
a {#{$some-css}}  //breaks

これはバニラストリング処理のようであり、許可するのは非常に簡単なことのようです。別の構文を見落としていますか、それとも現在のscssでは不可能ですか?

4

1 に答える 1

4

あなたが望むものに最も近いのは次のようなものです:

@mixin property-list($list) {
    @each $i in $list {
        #{nth($i, 1)}: nth($i, 2);
    }
}

$links: color red, border (1px solid);

a {
    @include property-list($links);
}

コンパイルすると:

a {
  color: red;
  border: 1px solid;
}
于 2012-12-12T13:07:47.507 に答える