Css 嵌套循环中Sass变量插值的解决方法?

Css 嵌套循环中Sass变量插值的解决方法?,css,sass,Css,Sass,我意识到这是Sass目前的一个大问题,我已经研究了一些解决方案,但我有一套地图,我正在尝试创建一个循环,如: //Color chords $chord1: (color1:orange, color2: magenta, color3: gray, color4: yellow); $chord2: (color1:magenta, color2: blue, color3: gray, color4: orange); %fillcolor { } @for $c fr

我意识到这是Sass目前的一个大问题,我已经研究了一些解决方案,但我有一套地图,我正在尝试创建一个循环,如:

    //Color chords
$chord1: (color1:orange,  color2: magenta, color3: gray, color4: yellow);
$chord2: (color1:magenta, color2: blue,    color3: gray, color4: orange);

%fillcolor {

}

@for $c from 1 through 8 {
    #chord#{$c} {
        @for $i from 1 through 4 {
            .color#{$i} {
                $c1: map-get($chord#{$c}, color#{$i});
                fill: $c1;
                color: $c1;
            }
        }
    }
}
当然,Sass(3.4.5)被
$chord#{$c}
(“找不到变量$chord”)阻塞了


在这种情况下有解决办法吗?

目前不能在SCSS中使用动态变量名,但可以使用如下所示的列表

//Color chords
$chord: (
  (color1:orange,  color2: magenta, color3: gray, color4: yellow)
  (color1:magenta, color2: blue,    color3: gray, color4: orange)
);

@for $c from 1 through length($chord) {
    $subList: nth($chord, $c);
    #chord#{$c} {
        @for $i from 1 through length( $subList ) {
            .color#{$i} {
                $c1: map-get( $subList, color#{$i});
                fill: $c1;
                color: $c1;
            }
        }

    }
}

现在不能在SCSS中使用动态变量名,但可以使用如下所示的列表

//Color chords
$chord: (
  (color1:orange,  color2: magenta, color3: gray, color4: yellow)
  (color1:magenta, color2: blue,    color3: gray, color4: orange)
);

@for $c from 1 through length($chord) {
    $subList: nth($chord, $c);
    #chord#{$c} {
        @for $i from 1 through length( $subList ) {
            .color#{$i} {
                $c1: map-get( $subList, color#{$i});
                fill: $c1;
                color: $c1;
            }
        }

    }
}

现在不能在SCSS中使用动态变量名,但可以使用如下所示的列表

//Color chords
$chord: (
  (color1:orange,  color2: magenta, color3: gray, color4: yellow)
  (color1:magenta, color2: blue,    color3: gray, color4: orange)
);

@for $c from 1 through length($chord) {
    $subList: nth($chord, $c);
    #chord#{$c} {
        @for $i from 1 through length( $subList ) {
            .color#{$i} {
                $c1: map-get( $subList, color#{$i});
                fill: $c1;
                color: $c1;
            }
        }

    }
}

现在不能在SCSS中使用动态变量名,但可以使用如下所示的列表

//Color chords
$chord: (
  (color1:orange,  color2: magenta, color3: gray, color4: yellow)
  (color1:magenta, color2: blue,    color3: gray, color4: orange)
);

@for $c from 1 through length($chord) {
    $subList: nth($chord, $c);
    #chord#{$c} {
        @for $i from 1 through length( $subList ) {
            .color#{$i} {
                $c1: map-get( $subList, color#{$i});
                fill: $c1;
                color: $c1;
            }
        }

    }
}

当然,您也可以在$chord列表上迭代,并避免使用神奇的数字。。。这里有一篇关于SASS中列表的好文章:这是一个很好的解决方案。当然,如果Sass只允许在变量名中插入,那么读取Sass将容易得多。也许有一天。谢谢,我会用的。当然你也可以在$chord列表上迭代,避免使用神奇的数字。。。这里有一篇关于SASS中列表的好文章:这是一个很好的解决方案。当然,如果Sass只允许在变量名中插入,那么读取Sass将容易得多。也许有一天。谢谢,我会用的。当然你也可以在$chord列表上迭代,避免使用神奇的数字。。。这里有一篇关于SASS中列表的好文章:这是一个很好的解决方案。当然,如果Sass只允许在变量名中插入,那么读取Sass将容易得多。也许有一天。谢谢,我会用的。当然你也可以在$chord列表上迭代,避免使用神奇的数字。。。这里有一篇关于SASS中列表的好文章:这是一个很好的解决方案。当然,如果Sass只允许在变量名中插入,那么读取Sass将容易得多。也许有一天。谢谢,我会用的。