1

だから、私は SASS を学び始めたばかりで、すべてのベンダー プレフィックスをステートメントの先頭に追加する簡単な mixin を作成しようと考えました。だから私はこれを書いた:

@mixin prefix( $style, $value ) {
  $style: $value;
  -o-#{$style}: $value;
  -moz-#{$style}: $value;
  -webkit-#{$style}: $value;
  -ms-#{$style}: $value;
}

header {
  @include prefix( transform, rotate(90deg) );
}

ただし、何らかの理由で理解できないため、次の出力が生成されます。

header {
  -o-rotate(90deg): rotate(90deg);
  -moz-rotate(90deg): rotate(90deg);
  -webkit-rotate(90deg): rotate(90deg);
  -ms-rotate(90deg): rotate(90deg); }

明らかに、最初の引数を 2 番目の引数に置き換えています。ここでは、私のサーバーと同じ出力が生成されます。なぜこれが起こっているのか、誰かが光を当ててくれることを願っています。

4

1 に答える 1

6

$styleの値が の値に置き換えられただけでなく$value、プレフィックスのない規則も得られていないことに注意transform: rotate(90deg);してくださいo-transform。これは、問題が最初の行にあるという手がかりになるはずです。

そして、それは次のとおりです。最初の行は

#{$style}: $value;

後続のすべてのルールと同様に、 のリテラル コンテンツを$style出力するには、ポンド記号デコレータを使用する必要があります。それがないと、SASS はその行を変数割り当てとして解釈します。

于 2012-11-06T06:13:40.090 に答える