将值附加到列表

时间:2014-02-14 18:58:27

标签: css sass

在SCSS中,我正在尝试编写一个函数,该函数采用长度介于0和3之间的列表,并附加默认值(如下所示)以使长度总是为3,然后使用它。在示例中,列表中第一个,第二个和第三个位置的默认值分别为102030

@function foo($list){
  @if length($list) < 1 {append($list, 10)}
  @if length($list) < 2 {append($list, 20)}
  @if length($list) < 3 {append($list, 30)}
  // code follows that uses @list
}

但上面的代码会返回如下错误:

Invalid CSS after "...pend($list, 10)": expected "{", was ";".

如何解决?

1 个答案:

答案 0 :(得分:2)

你必须将它设置为变量,像append()这样的函数是非破坏性的(即它们不会修改原始列表,它们只返回一个新列表)

@function foo($list){
  @if length($list) < 1 { $list: append($list, 10) }
  @if length($list) < 2 { $list: append($list, 20) }
  @if length($list) < 3 { $list: append($list, 30) }
  // code follows that uses @list
}