2013-03-18 17 views
11

È possibile avere un elenco di tre colori:ciclabile attraverso un elenco di colori con sass

$ color-list: x y z;

E quindi applicare questi tre colori scorrendoli e aggiungendoli a una voce di elenco non ordinata.

voglio:

<li>row 1</li> (gets color x) 
<li>row 2</li> (gets color y) 
<li>row 3</li> (gets color z) 
<li>row 4</li> (gets color x) 

e così via e così via.

Avevo provato a utilizzare la funzione @each (http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#each-directive) ma poi si interrompe solo dopo aver applicato il colore dopo la prima volta attraverso l'elenco. Voglio che i colori continuino a pedalare finché non esaurisce gli elementi di elenco per applicarli.

questo è possibile con sass?

+0

Sembra come un caso di [nth-child] (http://css-tricks.com/ how-nth-child-works /). Sass non sa del tuo codice. È possibile scorrere le voci dell'elenco con '@ each', ma sarebbe più flessibile usare' nth-child'. – steveax

risposta

31

Se è possibile con CSS puro, è possibile con Sass. Questo funziona con qualsiasi numero di colori:

http://codepen.io/cimmanon/pen/yoCDG

$colors: red, orange, yellow, green, blue, purple; 

@for $i from 1 through length($colors) { 
    li:nth-child(#{length($colors)}n+#{$i}) { 
     background: nth($colors, $i) 
    } 
} 

uscita:

li:nth-child(6n+1) { 
    background: red; 
} 

li:nth-child(6n+2) { 
    background: orange; 
} 

li:nth-child(6n+3) { 
    background: yellow; 
} 

li:nth-child(6n+4) { 
    background: green; 
} 

li:nth-child(6n+5) { 
    background: blue; 
} 

li:nth-child(6n+6) { 
    background: purple; 
} 
+0

Capisco quel metodo ... ma quello che voglio è che faccia un ciclo continuo attraverso i colori. Quindi sul tuo esempio il 7 ° sarebbe tornato al rosso e lo farebbe fino a quando tutti gli elementi li sono in stile. – JoshuaRule

+3

E lo fa? La dimostrazione non lo dimostra? Questo è ciò che '6n + 1' fa:' (6 * n) + 1' = 1, 7, 13, 19, 25, ecc. – cimmanon

+0

I redact my previous comment. Funziona alla grande! Capisco come funziona ora. – JoshuaRule

Problemi correlati