在嵌套的mixin中使用SASS @each变量

时间:2019-02-19 23:32:34

标签: css loops sass each scss-mixins

我想使用Sass内置的@each方法来缩短此代码:

.svg-circle-full {
    @include mixinSVG((
        'svg': $svgvar-icn-circle-full,
        'isWide': false
    )...);
}

.svg-circle-empty {
    @include mixinSVG((
        'svg': $svgvar-icn-circle-empty,
        'isWide': false
    )...);
}

.svg-circle-half {
    @include mixinSVG((
        'svg': $svgvar-icn-circle-half,
        'isWide': false
    )...);
}

基本上,我需要能够在mixinSVG mixin内部的@each循环中使用变量名。我正在尝试这样做,但是当它碰到'svg'属性内的@each变量时,它就会失败:

@each $state in full, empty, half {
    .svg-circle-#{$state} {
        @include mixinSVG((
        'svg': $svgvar-icn-circle-#{$state},
        'isWide': false
        )...);
    }
}

1 个答案:

答案 0 :(得分:0)

您正在弄乱命名的参数。

它应该看起来像这样:

@each $state in triangle, square, circle {
    .svg-circle-#{$state} {
        @include mixinSVG(
        $svg: svgvar-icn-circle-#{$state},
        $isWide: false
        );
    }
}

来源:http://blog.ricardofilipe.com/post/object-arguments-in-sass