可以在Sass中定义一个数组吗?

时间:2009-12-14 21:35:45

标签: haml sass

想知道是否可以使用Sass数组,因为我发现自己重复了以下几种事情:

.donkey
  h2
    background-color= !donkey

.giraffe
  h2
    background-color= !giraffe

.iguana
  h2
    background-color= !iguana

3 个答案:

答案 0 :(得分:18)

绝对

$animals: "donkey", "giraffe", "iguana"
@foreach $animal in $animals
  .#{$animal}
    h2
      background-color: !#{$animal}

答案 1 :(得分:1)

不,这是不可能的。最好的方法是定义一个mixin:

+animal-h2(!name, !color)
  .#{name} h2
    background-color= !color

然后每个样式可以有一行,而不是三行:

+animal-h2("donkey", !donkey)
+animal-h2("giraffe", !giraffe)
+animal-h2("iguana", !iguana)

答案 2 :(得分:0)

nex3的回答是正确的。要使用SASS on Rails 3.1,我需要在css.scss文件中包含以下内容:

$donkey: #CC4499;

@mixin animal-h2($name, $color) {
  .#{$name} h2 {
    background-color: $color;
  }
}

@include animal-h2("donkey", $donkey);
@include animal-h2("horse", #000);

哪个输出:

.donkey h2 {
    background-color: #CC4499;
}

.horse h2 {
    background-color: black;
}