10. 函数指令 (Function Directives)

Sass 支持自定义函数,并能在任何属性值或 Sass script 中使用:

  1. $grid-width: 40px;
  2. $gutter-width: 10px;
  3. @function grid-width($n) {
  4. @return $n * $grid-width + ($n - 1) * $gutter-width;
  5. }
  6. #sidebar { width: grid-width(5); }

编译为

  1. #sidebar {
  2. width: 240px; }

与 mixin 相同,也可以传递若干个全局变量给函数作为参数。一个函数可以含有多条语句,需要调用 @return 输出结果。

自定义的函数也可以使用关键词参数,上面的例子还可以这样写:

  1. #sidebar { width: grid-width($n: 5); }

建议在自定义函数前添加前缀避免命名冲突,其他人阅读代码时也会知道这不是 Sass 或者 CSS 的自带功能。

自定义函数与 mixin 相同,都支持 variable arguments