SASS功能中的每个

SASS功能中的每个,sass,Sass,我想使用sass(理想的缩进语法)将相同的转换应用于几个不同的属性。为此,我想使用@each指令。我已经搜索了一些示例,但是有关sass中函数的文档非常零散 以下是我所拥有的: @function default-trans($trans...) $out: () @each $tran in $trans append($out, "#{$tran} 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55)") @return $out #

我想使用sass(理想的缩进语法)将相同的转换应用于几个不同的属性。为此,我想使用@each指令。我已经搜索了一些示例,但是有关sass中函数的文档非常零散

以下是我所拥有的:

@function default-trans($trans...)
  $out: ()
  @each $tran in $trans
    append($out, "#{$tran} 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55)")
  @return $out

#sidebar
  transition: default-trans(background-color width)
预期结果:

#sidebar {
  transition: background-color 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55), width 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55)
}
我得到一个错误,说: 函数只能包含变量声明和控制指令

我怀疑问题是否真的是我的append函数,但我猜我有某种语法错误,无法充分调试


感谢您的帮助

如果要发送列表,则必须使用逗号分隔的值

transition: default-trans(background-color, width)
在追加结果时,需要再次将其分配给输出

append($out, "#{$tran} 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55)")

代码块

@function default-trans($trans...)
  $out: ()
  @each $tran in $trans
    $out: append($out, #{$tran} 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55), comma)
  @return $out

#sidebar
  transition: default-trans(background-color, width)

太好了!谢谢你花时间这么详尽地讲了一遍。非常感谢。
@function default-trans($trans...)
  $out: ()
  @each $tran in $trans
    $out: append($out, #{$tran} 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55), comma)
  @return $out

#sidebar
  transition: default-trans(background-color, width)