我可以在函数定义中使用参数吗?

时间:2014-11-11 13:36:24

标签: syntax sass

我想知道以下语法对于Sass是否正确:

@function foo($param)
{
    @return $param;
}
@mixin bar($paramOne, $paramTwo: foo($paramOne))
{
    test: $paramTwo;
}
#test { @include bar(foobar); }

预期回报:

#test { test: foobar; }

在为SASS / SCSS使用以下$paramOne looses it's value时,似乎不起作用(如PHPSASS compiler。)

这是正确的语法?或者我错过了什么?

它与_vertical_rhythm.scss中的情况非常相似:

@mixin adjust-font-size-to($to-size, $lines: lines-for-font-size($to-size), $from-size: $base-font-size) {

1 个答案:

答案 0 :(得分:0)

似乎这种语法完全有效,因为cimmanon将它发布在sassmeister gist(谢谢)上,它使用的是Ruby版本的解析器。其他一些解析器可能会遇到问题(在这种情况下为phpsass),具体取决于他们如何实现该逻辑。

如果出现问题,请确保您使用的是正确的解析器scss语法,而不是sass语法(wiki,例如new SassParser(['syntax' => 'scss']))。请参阅:What's the difference between SCSS and Sass?


请注意,在垂直节奏的Compass(开源CSS创作框架)中使用了相同的语法:

@mixin adjust-font-size-to($to-size, $lines: lines-for-font-size($to-size), $from-size: $base-font-size)

但在recent version只是:

@mixin adjust-font-size-to($to-size, $lines: auto, $from-size: $base-font-size)