2009-12-14 7 views
6

chiedendo se è possibile utilizzare un array con Sass come ho trovato la mia auto a ripetere il seguente tipo di cosa:possibile definire una matrice in Sass?

.donkey 
    h2 
    background-color= !donkey 

.giraffe 
    h2 
    background-color= !giraffe 

.iguana 
    h2 
    background-color= !iguana 

risposta

2

No, questo non è possibile. Il modo migliore per farlo è quello di definire un mixin:

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

allora si può avere una linea per ogni stile, anziché tre: risposta

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

Questo è proprio il tipo di cosa che stavo cercando, grazie –

0

di NEX3 è corretta. Per ottenere questo lavoro con SASS on Rails 3.1 avevo bisogno di avere quanto segue in un file css.scss:

$donkey: #CC4499; 

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

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

quale uscita:

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

.horse h2 { 
    background-color: black; 
} 
17

Assolutamente.

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

Justin ha ragione su questo. Ho usato [liste Sass] (http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#lists) per divertimento e profitto e posso garantire la loro utilità. Dopo aver letto le liste di Sass, dovresti anche dare un'occhiata alle funzioni della lista di Sass, trovate [qui] (http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html#list-functions). Non sono quasi mai d'aiuto, ma in certi casi possono davvero semplificarti la vita! – Bitmanic