Sass 如何使用mixin从scss中未定义的长度数组创建字符串?

Sass 如何使用mixin从scss中未定义的长度数组创建字符串?,sass,scss-mixins,Sass,Scss Mixins,这里的答案适用于预加载图像: 我认为您也可以使用显示:无,而不是位置、宽度等 我如何创建一个mixin,它接受一个img URL数组并生成如下内容: content:url(img01.png)url(img02.png)url(img03.png)url(img04.png) 我在想类似的事情 @mixin preloadImgs($imgUrls){ &:after{ content: @each $imgUrl in imgUrls url('#{$imgUrl}')

这里的答案适用于预加载图像:

我认为您也可以使用显示:无,而不是位置、宽度等

我如何创建一个mixin,它接受一个img URL数组并生成如下内容:

content:url(img01.png)url(img02.png)url(img03.png)url(img04.png)

我在想类似的事情

@mixin preloadImgs($imgUrls){
  &:after{
    content: @each $imgUrl in imgUrls url('#{$imgUrl}');
    display: none;
  }
}


您需要的是@功能,而不是@mixin。mixin提供一个或多个属性值样式规则,其中sass中的as函数只提供属性值

@function getUrls($urls) {
  $allUrls: '';
  @each $url in $urls {
    $allUrls: #{$allUrls url($url)};
  }
  @return $allUrls
}

.class {
  color: getUrls('one' 'two');
}
.test{
  @include preloadImgs(['img01.png', 'img02.png', 'img03png']);
}
@function getUrls($urls) {
  $allUrls: '';
  @each $url in $urls {
    $allUrls: #{$allUrls url($url)};
  }
  @return $allUrls
}

.class {
  color: getUrls('one' 'two');
}