【问题标题】:Sass function simple example is giving errorSass 函数简单示例给出错误
【发布时间】:2020-04-02 08:04:28
【问题描述】:

我有以下给出错误的 sass 代码。请帮忙!

ma​​in.scss

@function alpha($background, $color, $font-size){
    return {
    background: $background,
    color: $color,
    font-size: $font-size
    }
}

div {alpha(yellow, violet, 24);}
p {alpha(blue, orange, 20);}

错误:

致命错误:解析错误:第 3 行 background: $background, (stdin) 失败

注意:我知道这可以通过我的 Mixin 完成。但是,我读到的是 Mixins 和 Functions 可以互换使用。所以,我想这样做 仅按功能工作(查看它们是否真的完成了所有工作 混合)。

提前致谢!

【问题讨论】:

    标签: css sass scss-mixins


    【解决方案1】:

    你在这里混合mixins和functions。

    混合提供(嵌套的)规则和值,而函数只返回值。

    你需要的是一个像这里这样的mixin

    @mixin alpha($background, $color, $font-size) {
       background: $background;
       color: $color;
       font-size: $font-size;
    }
    
    div {@include alpha(yellow, violet, 24);}
    p {@include alpha(blue, orange, 20);}
    

    说明

    这就是你使用 Mixins 的方式

    @mixin red-align($text-align: left) {
       color: red;
       text-align: $text-align
    }
    
    
    body h1 {
      @include red-align(center);
    }
    

    这就是你使用函数的方式

    @function red($opacity: 1) {
       @return rgba(255, 0, 0, $opacity);
    }
    @function align($text-align: left) {
       @return $text-align;
    }
    
    body h1 {
      color: red();
      text-align: align(center);
    }
    

    两个例子都产生了:

    body h1 {
      color: red;
      text-align: center;
    }
    
    

    【讨论】:

    • 我明白这一点,但我认为函数也可以完成 mixins 的所有工作,所以我试图通过函数来​​做同样的事情。
    • @Deadpool No. 函数只传递值,没有规则或选择器
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 2017-10-27
    相关资源
    最近更新 更多