sass分割字符串

@mixin remCalc($property, $values...) {
  $max: length($values);//返回$values列表的长度值
  #{$property}: $max;
}
@include remCalc(background-position,0px 10px);

因为我传入的 $values参数 只能以空格分割,
有没有把values转成list的方法。

阅读 4.4k
1 个回答

首先,诸如

scss$lstA : 0px 10px;
$lstB : (1,2),2; // 二维list

这样用空格分隔的写法就是list……

其次,你没有理解 多组值参数list的 区别

当你的形参写作如下形式时:

scss$values...

并不是把若干个实参都赋给 $values,而是分别赋值,实参之间用逗号(",")隔开。

但是你实际上是使用空格分隔,这样,你的“若干个”参数会被编译器识别为一个参数(只是一个list),此时的length返回的实参数只能是1。我不知道你想要什么样的结果,也许这个是你需要的:

scss@mixin remCalc($property, $values) {
  $max: length($values);//返回$values列表的长度值
  #{$property}: $max;
}
@include remCalc(background-position,0px 10px);

另外,对list取长度也是用length函数的,这算一个坑吗。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题