我正在将列表传递给mixin以减少必须传递给mixin的参数数量。 mixin代码可以在下面看到。

@mixin colorMedal($medalData) {
  background-image: linear-gradient(
    45deg,
    nth($medalData,2) 0%,
    nth($medalData,2) 50%,
    nth($medalData,1) 50.1%,
    nth($medalData,1) 100%
  );
  #{nth($medalData,0)} ~ .medal__ribbon--left {
    background: nth($medalData,3);
  }
  #{nth($medalData,0)} ~ .medal__ribbon--right {
    background: nth($medalData,4);
  }
}


我通过的列表看起来像这样

$platinum: ".medal__platinum", $medal-platinum, $medal-platinum-dark,
  $medal-platinum-ribbon, $medal-platinum-ribbon-dark;


mixin的调用是:

@include colorMedal($platinum);


似乎引起编译错误的代码是

#{nth($medalData,0)}

必须有一种方法可以执行此操作,因为您可以自己传递多个值。有没有办法使用列表中的值作为选择器?

最佳答案

Sass列表从索引1开始而不是0

所以从

#{nth($medalData,0)}




#{nth($medalData,1)}


您可以调试Codepen中的更改

https://codepen.io/srajagop/pen/wvBrzjO?editors=0102

09-25 17:57