Différencier des éléments dans une liste non ordonnée

Bonjour,
c'est très cosmétique, mais dans une liste à puces, je cherche à faire en sorte que les puces soient de couleurs différentes (pour un même niveau de liste).

C'est-à-dire que j'aimerais générer un truc du style

<ul>
<li class="rouge">item</li>
<li class="vert">item</li>
<li class="bleu">item</li>
<li class="jaune">item</li>
<li class="rouge">item</li>
<li class="vert">item</li>
etc.
</ul>

En gros, j'incrémente de un à chaque exécution de la boucle, et quand j'arrive à la fin de mes 4 couleurs (comme ici), je recommence à la couleur 1.

Auriez-vous une piste ?

Je suis tombé sur
http://archives.rezo.net/spip.mbox/200407.mbox/<40EE85DD.1020004@cerene.fr>
Mais 1) ça incrémente sans arrêt et 2) je préfère une soluce tout en spip, vu que php et moi ça fait deux.

Bonjour,

Oui, il y a une solution. Il faut regarder du côté du filtre |alterner{a,b,c,d}
http://www.spip.net/fr_article901.html#alterner

Le 19 décembre 2008 15:55, Martin Granger <moustiquaire@free.fr> a écrit :

Bonjour,
c’est très cosmétique, mais dans une liste à puces, je cherche à faire en sorte que les puces soient de couleurs différentes (pour un même niveau de liste).

C’est-à-dire que j’aimerais générer un truc du style

  • item
  • item
  • item
  • item
  • item
  • item
  • etc.

En gros, j’incrémente de un à chaque exécution de la boucle, et quand j’arrive à la fin de mes 4 couleurs (comme ici), je recommence à la couleur 1.

Auriez-vous une piste ?

Je suis tombé sur
http://archives.rezo.net/spip.mbox/200407.mbox/%3C40EE85DD.1020004@cerene.fr%3E
Mais 1) ça incrémente sans arrêt et 2) je préfère une soluce tout en spip, vu que php et moi ça fait deux.


liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

Teddy Payet a écrit :

Bonjour,

Oui, il y a une solution. Il faut regarder du côté du filtre |alterner{a,b,c,d}
Les filtres de SPIP - SPIP

Waouh, cool, merci !
C'est grave j'ai l'impression d'être le mec dans la série "Palace" qui termine à chaque fois par "je l'aurai !" Franchement, à mon modeste niveau, y a rien que spip ne puisse faire. Je crois bien que je n'ai jamais eu besoin de php nulle part.

Tu peux te servir d’une class avec #COMPTEUR_BOUCLE dans ta boucle
Ce qui devrait te donner

  • item
Ensuite dans ta css li.couleur1 li.couleur2 li.couleur3

Et autant de numéro que d’éléments dans ta liste
En revanche pour une itération tous les 4, là je sais pas, je passe la main

Alexandra

Le 19 décembre 2008 15:55, Martin Granger <moustiquaire@free.fr> a écrit :

Bonjour,
c’est très cosmétique, mais dans une liste à puces, je cherche à faire en sorte que les puces soient de couleurs différentes (pour un même niveau de liste).

C’est-à-dire que j’aimerais générer un truc du style

  • item
  • item
  • item
  • item
  • item
  • item
  • etc.

En gros, j’incrémente de un à chaque exécution de la boucle, et quand j’arrive à la fin de mes 4 couleurs (comme ici), je recommence à la couleur 1.

Auriez-vous une piste ?

Je suis tombé sur
http://archives.rezo.net/spip.mbox/200407.mbox/%3C40EE85DD.1020004@cerene.fr%3E
Mais 1) ça incrémente sans arrêt et 2) je préfère une soluce tout en spip, vu que php et moi ça fait deux.


liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

Alexandra Guiderdoni a écrit :

En revanche pour une itération tous les 4, là je sais pas, je passe la main

<li class="couleur[(#COMPTEUR_BOUCLE|modulo{4})]">item</li>

donnera
passage 1 : class="couleur0
passage 2 : class="couleur1
passage 3 : class="couleur2
passage 4 : class="couleur3
passage 5 : class="couleur0
passage 6 : class="couleur1
...

denisb a écrit :

<li class="couleur[(#COMPTEUR_BOUCLE|modulo{4})]">item</li>

jouons sans prise de tête...

...
et si on voulait alterner les styles tous les 4 résultats
(par blocs donc) :

<li class="couleur[(#COMPTEUR_BOUCLE|moins{1}|modulo{8}|<{4}|?{a, b})]">item</li>

qui donnera :
   passage 1 : class="couleura
   passage 2 : class="couleura
   passage 3 : class="couleura
   passage 4 : class="couleura
   passage 5 : class="couleurb
   passage 6 : class="couleurb
   passage 7 : class="couleurb
   passage 8 : class="couleurb
   passage 9 : class="couleura
   passage 10 : class="couleura
   ...

et d'une manière générale :
   #COMPTEUR_BOUCLE|moins{1}|modulo{2x}|<{x}|?{a, b}

par exemple : changer toutes les 6 lignes
   #COMPTEUR_BOUCLE|moins{1}|modulo{12}|<{6}|?{a, b}

(kesskonrigol)

denisb a écrit :

jouons sans prise de tête...

(...)

(kesskonrigol)

Ouah, pas mal ! Je range ça quelque part au cas où !