2013-03-18 14 views
11

Radfahren Es ist möglich, eine Liste von drei Farben haben:durch eine Liste von Farben mit Sass

$ Farbe-Liste: x y z;

Und dann wenden Sie diese drei Farben an, indem Sie sie durchlaufen und auf einem ungeordneten Listenelement hinzufügen.

Ich möchte:

<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) 

und so weiter und so fort.

Ich hatte versucht, die @each (http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#each-directive) -Funktion zu verwenden, aber dann hört es einfach auf, Farbe nach dem ersten Mal durch die Liste anzuwenden. Ich möchte, dass die Farben so lange weiterlaufen, bis die Listenelemente aufgebraucht sind.

ist das mit sass möglich?

+0

Es scheint ein Fall für [n-Kind] (http://css-tricks.com/ how-nth-kind-arbeitet /). Sass weiß nichts von deinem Markup. Sie könnten die Listenelemente mit '@ each 'durchlaufen, aber es wäre flexibler,' nth-child' zu verwenden. – steveax

Antwort

31

Wenn es mit reinem CSS möglich ist, ist es mit Sass möglich. Dies wird mit einer beliebigen Anzahl von Farben arbeiten:

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) 
    } 
} 

Ausgang:

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

Ich verstehe diese Methode ... aber was ich will ist, dass sie ständig die Farben durchläuft. In deinem Beispiel würde die 7. li also bei rot beginnen und es würde dies tun, bis alle li-Elemente gestylt sind. – JoshuaRule

+3

Und es tut? Zeigt das nicht die Demo? Das macht '6n + 1':' (6 * n) + 1' = 1, 7, 13, 19, 25 usw. – cimmanon

+0

Ich redigiere meinen früheren Kommentar. Das funktioniert großartig! Ich verstehe, wie es jetzt funktioniert. – JoshuaRule

Verwandte Themen