首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在循环中使用动态SASS函数名

在循环中使用动态SASS函数名
EN

Stack Overflow用户
提问于 2018-01-16 10:57:13
回答 1查看 685关注 0票数 1

我正在通过循环创建一些实用程序类,但是不会使用已经存在的函数。

我在其他CSS中使用了一些功能:

代码语言:javascript
复制
@function size-1() {
    @return  #{ ( 8 / 16 ) }rem;
}
@function size-2() {
    @return #{ ( 16 / 16 ) }rem;
}
@function size-3() {
    @return #{ ( 24 / 16 ) }rem;
}
@function size-4() {
    @return #{ ( 32 / 16 ) }rem;
}

但是,我还创建了一个循环,以便在标记中也可以使用类:

代码语言:javascript
复制
@for $i from 1 through 18 {
    .mt-#{$i} {
        margin-top: size-$i();
    }
}

我尝试过(上面)动态调用函数,但是如果我动态地调用它,它只输出'size-1‘的文本。如果我使用直接函数名,例如:

代码语言:javascript
复制
margin-top: size-1();

那么它就能正常工作了。有什么办法我能做到吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-16 12:17:40

使用函数打电话调用您的函数:

代码语言:javascript
复制
@function size-1() {
    @return  #{ ( 8 / 16 ) }rem;
}
@function size-2() {
    @return #{ ( 16 / 16 ) }rem;
}
@function size-3() {
    @return #{ ( 24 / 16 ) }rem;
}
@function size-4() {
    @return #{ ( 32 / 16 ) }rem;
}

...

@for $i from 1 through 18 {
    .mt-#{$i} {
        margin-top: call(size- + $i);
    }
}

(在:https://www.sassmeister.com/中测试)

编辑:另一种功能较少的方法:

代码语言:javascript
复制
@function size($num) {
    @return  #{ ( $num/2) }rem;
}

@for $i from 1 through 18 {
    .mt-#{$i} {
        margin-top: size($i);
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48279615

复制
相关文章

相似问题

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