можно определить массив в Sass? - PullRequest
6 голосов
/ 15 декабря 2009

задаюсь вопросом, возможно ли использовать массив с Sass, когда я обнаружил, что сам повторяю следующую вещь:

.donkey
  h2
    background-color= !donkey

.giraffe
  h2
    background-color= !giraffe

.iguana
  h2
    background-color= !iguana

Ответы [ 3 ]

18 голосов
/ 01 мая 2012

Абсолютно.

$animals: "donkey", "giraffe", "iguana"
@foreach $animal in $animals
  .#{$animal}
    h2
      background-color: !#{$animal}
1 голос
/ 15 декабря 2009

Нет, это невозможно. Лучший способ сделать это - определить миксин:

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

Тогда у вас может быть одна строка на стиль, а не три:

+animal-h2("donkey", !donkey)
+animal-h2("giraffe", !giraffe)
+animal-h2("iguana", !iguana)
0 голосов
/ 02 декабря 2011

Ответ nex3 правильный. Чтобы это работало с SASS на 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;
}
...