Sass 将列表元素作为参数传递给mixin

Sass 将列表元素作为参数传递给mixin,sass,Sass,除了我尝试将$gradient传递到@include background image时,以下代码可以正常工作 @mixin compositeFill($size: 100px, $gradient:(top, #000000 0%, #FFFFFF 100%)) { $isTop: nth($gradient, 1) == "top"; $direction: if($isTop, vertical, horizontal); $widthHeight: if($i

除了我尝试将
$gradient
传递到
@include background image
时,以下代码可以正常工作

@mixin compositeFill($size: 100px, $gradient:(top, #000000 0%, #FFFFFF 100%)) {

    $isTop: nth($gradient, 1) == "top";
    $direction: if($isTop, vertical, horizontal);
    $widthHeight: if($isTop, height, width);
    $heightWidth: if($isTop, width, height);

    // snipped a whole bunch of irrelevant stuff
    // this is what fails:
    @include background-image(linear-gradient($gradient));
}

如何将列表(例如,
$gradient
)传递给需要多个参数的mixin?

要将参数列表传递给接受多个参数的mixin,您需要像这样使用它:

@include background-image(linear-gradient($gradient...));
三个点表示要填写列表元素中的参数。。。否则,整个列表将作为单个参数传递。。。而
linear-gradient()


可能重复的不它不是通用@mixin for sass的多个不同值的重复。需要对$gradient执行一些操作,以便它能够正确地传递到linear-gradient(),我已经尝试了很多方法,但都不起作用。