首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用循环来创建一个逗号分隔值,而不需要在末尾添加一个逗号?

如何使用循环来创建一个逗号分隔值,而不需要在末尾添加一个逗号?
EN

Stack Overflow用户
提问于 2014-10-03 20:35:22
回答 2查看 38关注 0票数 0

我使用@for创建多个框影参数:

代码语言:javascript
复制
.myclass {

    $bxsw : "";
    @for $i from 1 through 10 {
      $bxsw : $bxsw + " -" + $i + "px -" + $i + "px " + brown + ",";
    }

    box-shadow: #{$bxsw};

}

这给了我:

代码语言:javascript
复制
.myclass {
    box-shadow: -1px -1px brown, -2px -2px brown, -3px -3px brown, -4px -4px brown, -5px -5px brown, -6px -6px brown, -7px -7px brown, -8px -8px brown, -9px -9px brown, -10px -10px brown,;
}

注意到最后加的逗号了吗?这导致Firefox不呈现框影。是否有可编程的方式删除最后一个逗号?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-03 23:23:01

最简单的方法是附加到逗号分隔列表。

代码语言:javascript
复制
.myclass {
    $bxsw : ();
    @for $i from 1 through 10 {
      $bxsw : append($bxsw, $i * -1px $i * -1px brown, comma);
    }

    box-shadow: $bxsw;
}

http://sassmeister.com/gist/7b8221953c7ca9813aea

票数 0
EN

Stack Overflow用户

发布于 2014-10-03 20:40:23

方法#1: --一个选项是为$bxsw设置一个基值,然后从2迭代循环

代码语言:javascript
复制
.myclass {
    $bxsw : "-1px -1px brown";
    @for $i from 2 through 10 {
      $bxsw : $bxsw + ", -" + $i + "px -" + $i + "px " + brown;
    }

    box-shadow: #{$bxsw};
}

方法#2:另一个选项是检查$bxsw是否为空,以便追加逗号:

代码语言:javascript
复制
.myclass {
    $bxsw : "";
    @for $i from 1 through 10 {
      @if ($bxsw != "") { $bxsw: $bxsw + ", "; }
      $bxsw : $bxsw + "-" + $i + "px -" + $i + "px " + brown;
    }

    box-shadow: #{$bxsw};
}

方法#3:,也可以检查当前的迭代次数是否是最后一个迭代次数:

代码语言:javascript
复制
.myclass {
    $bxsw: ""; $from: 1; $to: 10;

    @for $i from $from through $to {
      $bxsw : $bxsw + "-" + $i + "px -" + $i + "px " + brown;
      @if ($i < $to) { $bxsw: $bxsw + ", "; }
    }

    box-shadow: #{$bxsw};
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26186433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档