возможно определить массив в Sass?
Вопрос
Интересно, можно ли использовать массив с SASS, так как я нахожу себя, повторяя следующие вещи:
.donkey
h2
background-color= !donkey
.giraffe
h2
background-color= !giraffe
.iguana
h2
background-color= !iguana
Решение
Нет, это невозможно. Лучший способ сделать это - определить микшин:
+animal-h2(!name, !color)
.#{name} h2
background-color= !color
Тогда у вас может быть одна строка на стиль, а не три:
+animal-h2("donkey", !donkey)
+animal-h2("giraffe", !giraffe)
+animal-h2("iguana", !iguana)
Другие советы
Абсолютно.
$animals: "donkey", "giraffe", "iguana"
@foreach $animal in $animals
.#{$animal}
h2
background-color: !#{$animal}
Ответ 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;
}
Не связан с StackOverflow