2

目標: 次のように使用される scss (私は v3.2.1 を使用しています) mixin preload(任意の数の引数 > 0):

@include preload(url("a.png"), url("b.png"));

cssを出力します:

.preload { background-image: url("a.png"), url("b.png"); }

それらの間にそのコンマを含めます。失敗した試行はすべて、シークされた出力からコンマを除いたものを生成します。 編集:もちろん、実装のバグではなく、ミックスインの呼び出しに誤りがあったことがわかりました-3つすべてが正常に機能します:

@mixin preload($img_urls...) {
  .preload { background-image: $img_urls; }
}

@mixin preload($img_urls...) {
  .preload { background-image: join($img_urls, (), comma); }
}

@mixin preload($img_urls...) {
  $bgs: nth($img_urls, 1);
  @for $n from 2 through length($img_urls) {
    $bgs: $bgs, nth($img_urls, $n); 
  }
  .preload { background-image: $bgs; }
}
4

1 に答える 1

0

あなたはここでこれに近づきました:

@mixin preload($img_urls...) {
  .preload { background-image: #{join($img_urls, (), comma)}; } // missing the variable interpolation
}
于 2012-11-02T01:07:53.580 に答える