SASS:如何忽略循环

时间:2014-05-14 09:22:04

标签: css arrays sass

我有两个SCSS数组($color_options$object_options)。

我想使用SCSS循环遍历两个数组以组合来自两个数组的值。

我已经创建了一个功能来完成这一切,一切正常。但是,有时我只想循环遍历颜色数组并忽略对象数组。我怎么能这样做?

这是我的代码(*):

@function generic-avatar-hidden($color_options: $color_options, $object_options: $object_options) {
    $bg: compact();

    @each $ov in $object_options {
        $o-css-selector: nth($ov, 1);

        @each $cv in $color_options {
            $c-css-selector: nth($cv, 1);
            $assetname: $o-css-selector + $c-css-selector;

            $bg: join($bg, image-url("#{$root-directory}/#{$brand}/#{$product}/#{$type}/#{$product}-#{$type}-#{$path-pre}#{$assetname}#{$path-post}.#{$ext}"), comma);
        }
        // Close CV
    }
    // Close OV
    @return $bg;
}

<小时/> 我采取的步骤:

我已尝试将所有代码包装在@if $object_options != null中的object_options中。 这是有效的,但是当$object_options应该被使用时,该函数将仅循环遍历$object_options数组中的最后一项。


代码示例

(*)这是我的代码的缩减版本。完整的例子可以在这里找到:

Full version,不使用@if $object_options != null

<{> Updated version @if $object_options != null

**预期输出** (这基于上面链接的完整版代码)

http://pastebin.com/gVykec8X

基本上,$ color_options&amp; $ object_options里面都有5个元素。 SCSS代码从$ color_options和$ object_options中获取元素并将它们组合在一起。但是,如果将$ object_options设置为null,则不会有任何组合,只会使用$ color_options中的元素。

1 个答案:

答案 0 :(得分:1)

sass doesn't support break or continue statements。您应该使用@if来实现分支。