在Sass-lang @function v / s @mixin。哪一个使用?

时间:2015-07-06 07:18:30

标签: sass

在搜索了@function和@mixin之间的差异后,我结束了这里。

使用@mixin优于@funcion,反之亦然。在什么情况下他们会有所不同,如何互换使用,请提供示例。

1 个答案:

答案 0 :(得分:23)

函数特别有用,因为它们返回值。 Mixins与函数完全不同 - 它们通常只提供有价值的代码块。

通常情况下,您可能需要同时使用它们。

例如,如果我想创建long-shadow with SASS,我会调用这样的函数:

@function makelongshadow($color) {
  $val: 0px 0px $color;
  @for $i from 1 through 200 {
    $val: #{$val}, #{$i}px #{$i}px #{$color};
  }
  @return $val;
}

然后用这个mixin调用哪个:

@mixin longshadow($color) {
  text-shadow: makelongshadow($color);
}

它为我们提供了实际的代码。

它包含在元素中:

h1 {
    @include longshadow(darken($color, 5% ));
}