List 如何在scss中进行多背景混音?

List 如何在scss中进行多背景混音?,list,sass,background-image,List,Sass,Background Image,目标:一个SCS(我使用的是v3.2.1)mixinpreload这样使用(对于任意数量的args>0): 哪个输出css: .preload { background-image: url("a.png"), url("b.png"); } 包括他们之间的逗号。一些失败的尝试,都产生了所需的输出减去逗号:Edit:当然,结果证明我对mixin的调用有错误,而不是实现中的bug——这三个都可以正常工作: @mixin preload($img_urls...) { .preload { b

目标:一个SCS(我使用的是v3.2.1)mixin
preload
这样使用(对于任意数量的args>0):

哪个输出css:

.preload { background-image: url("a.png"), url("b.png"); }
包括他们之间的逗号。一些失败的尝试,都产生了所需的输出减去逗号:Edit:当然,结果证明我对mixin的调用有错误,而不是实现中的bug——这三个都可以正常工作:

@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; }
}

你在这里接近这个:

@mixin preload($img_urls...) {
  .preload { background-image: #{join($img_urls, (), comma)}; } // missing the variable interpolation
}

事实证明,这两种方法都是正确和有效的。只要你没有像
preload($bg$img)
这样的错误调用就行了。:)
@mixin preload($img_urls...) {
  .preload { background-image: #{join($img_urls, (), comma)}; } // missing the variable interpolation
}