热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

循环中的Sass动态变量

如何解决《循环中的Sass动态变量》经验,为你挑选了1个好方法。

如何mixin argumentarray variableSass的循环中获得?示例代码如下:

$colors: red green blue;
    $red-foo: 100px;
    $red-bar: 110px;
    $red-baz: 120px;
    $green-foo: 100px;
    $green-bar: 110px;
    $green-baz: 120px;
    $blue-foo: 100px;
    $blue-bar: 110px;
    $blue-baz: 120px;
    
    @mixin item($color-foo, $color-bar, $color-baz){
        width: $color-foo,;
        height: $color-bar;
        ...
    }
    
    @each $color in $colors {
        .class-#{$color}{
            @include item($color#{-foo}, $color#{-bar}, $color#{-baz})
        }
    }

期望的输出如下:

    .class-red{
        //variables
    }
    
    .class-green{
        //variables
    }
    
    .class-blue{
        //variables
    }

也就是在那里的速记方式$color-foo, $color-bar, $color-baz一样@include item($color-shorthand)?也许可以有更好的解决方案.



1> Jaredcheeda..:

你想要Sass Maps

$colors: (
    red: (
        foo: 100px,
        bar: 110px,
        baz: 110px
    ),
    green: (
        foo: 200px,
        bar: 210px,
        baz: 220px
    ),
    blue: (
        foo: 300px,
        bar: 310px,
        baz: 320px
    )
);

@mixin item ($color-foo, $color-bar, $color-baz) {
    width: $color-foo;
    height: $color-bar;
    padding: $color-baz;
}

@each $name, $value in $colors {
    .class-#{$name} {
        @include item(
            map-get($value, foo),
            map-get($value, bar),
            map-get($value, baz)
        );
    }
}


推荐阅读
author-avatar
feileide2011_108
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有