2013-03-18 13 views
11

के साथ रंगों की सूची के माध्यम से साइकिल चलाना संभव है तीन रंगों की सूची होना संभव है:सास

$ रंग-सूची: x y z;

और फिर इन तीन रंगों को उनके माध्यम से साइकिल चलाने और उन्हें एक अनियमित सूची आइटम में जोड़कर लागू करें।

मैं चाहता हूँ:

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

और इतने पर और बहुत आगे है।

मैंने @each (http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#each-directive) फ़ंक्शन का उपयोग करने का प्रयास किया था, लेकिन फिर यह सूची के माध्यम से पहली बार रंग लगाने से रोकता है। मैं चाहता हूं कि रंग साइक्लिंग को तब तक रखें जब तक कि उन्हें सूची आइटमों से बाहर नहीं किया जाता है।

क्या यह सैस के साथ संभव है?

+0

[वें वाले बच्चे] (के लिए एक मामले की तरह लगता है http://css-tricks.com/ इस रंग के किसी भी संख्या के साथ काम करेंगे कैसे-वें-बच्चों के काम करता है /)। सास आपके मार्कअप के बारे में नहीं जानता है। आप 'प्रत्येक' के साथ सूची आइटमों के माध्यम से पुन: प्रयास कर सकते हैं लेकिन यह 'nth-child' का उपयोग करने के लिए अधिक लचीला होगा। – steveax

उत्तर

31

यदि शुद्ध सीएसएस के साथ यह संभव है, तो सास के साथ यह संभव है।

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

आउटपुट::

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

मैं उस विधि को समझता हूं ... लेकिन मैं जो चाहता हूं वह रंगों के माध्यम से लगातार लूप के लिए है। तो आपके उदाहरण पर 7 वें ली लाल पर वापस शुरू हो जाएंगे और यह तब तक ऐसा करेगा जब तक कि सभी ली तत्वों को स्टाइल नहीं किया जाता है। – JoshuaRule

+3

और यह करता है? क्या डेमो यह नहीं दिखाता है? यही है '6 एन + 1' करता है: '(6 * एन) + 1' = 1, 7, 13, 1 9, 25, आदि – cimmanon

+0

मैं अपनी पिछली टिप्पणी को दोबारा शुरू करता हूं। यह बहुत अच्छा काम करता है! मैं समझता हूं कि अब आप कैसे काम कर रहे हैं। – JoshuaRule