如何使用sass map-get和sass语法?

时间:2015-06-12 13:22:00

标签: sass compass-sass

我正在使用sass开始一个项目,我更喜欢用.sass语法编写它。

另外,我想使用map功能来声明一些key-value变量......

作为例子:

$primary-colors: (
  "red":   "#ff0000",
  "green": "#00ff00",
  "blue":  "#0000ff"
);

/* Key and value together */
@each $color in $primary-colors {
  .thing {
    content: "#{$color}";
  }
}

/* Key and value separate */
@each $color-name, $color-code in $primary-colors {
  .color-#{$color-name} {
    background: $color-code;
  }
}

我的问题是我找不到如何用map语法编写这些.sass变量。

我已尝试过类似的内容:

$primary-colors: (
   "red": "#ff0000"
)

$example: map-get($primary-colors, "red")

当我尝试编译它时,我收到此错误:

Error: Illegal nesting: Nothing may be nested beneath variable declarations.

我的sass版本是:

Sass 3.4.11 (Selective Steve)

是否有人知道如何使用.sass语法?

1 个答案:

答案 0 :(得分:4)

嗯,这是一个问题,它以for each row i=0 sumLeftToRight += line[i]; sumRightToLeft += line[size-i-1]; print sumRightToLeft - sumLeftToRight 语法作为免费功能。您可以加入讨论on github。但它只是指向众所周知的.sass的指针,并且还讨论了on github

你能做些什么?只需使用单行。并且multiline-issue用于长声明。阅读它in the docs

map-merge

输出将是:

$array: (1: '1', 2: '2', 3: '3')
$second_array: (4: '4', 5: '5')
$merged: map-merge($array, $second_array)

@each $num, $str in $merged
  .link-#{$str}
    z-index: $num