J'essaie de styliser les nombres dans une liste ordonnée, j'aimerais ajouter la couleur d'arrière-plan, le rayon de la bordure et la couleur pour qu'ils correspondent au design sur lequel je travaille:
Je suppose que ce n'est pas possible et je devrai utiliser des images différentes pour chaque numéro, c'est-à-dire
ol li:first-child {list-style-image:url('1.gif')};
ol li:nth-child(2) {list-style-image:url('2.gif');}
etc...
Existe-t-il une solution plus simple?
html
css
html-lists
sprite
Pixelomo
la source
la source
Réponses:
Vous pouvez le faire en utilisant des compteurs CSS , en conjonction avec le
:before
pseudo élément:ol { list-style: none; counter-reset: item; } li { counter-increment: item; margin-bottom: 5px; } li:before { margin-right: 10px; content: counter(item); background: lightblue; border-radius: 100%; color: white; width: 1.2em; text-align: center; display: inline-block; }
<ol> <li>item</li> <li>item</li> <li>item</li> <li>item</li> </ol>
la source
counter-reset: item;
devrait aller dans le bloc ol, sinon le compteur ne sera pas réinitialisé dans <ol> imbriqué.li
élément fait plus d'une ligne?50%
forborder-radius
(plutôt que de100%
) est suffisante pour obtenir un cercle. (Voir, par exemple, Lea Verou, " The curious case of border-radius: 50% ", 30 octobre 2010.)li
position: relative;
, et ensuite:before
vous donneriez celaposition: absolute;
, puis vous l'utiliserieztop
etleft
pour le positionner exactement comme vous le souhaitez.Je cherchais quelque chose de différent et j'ai trouvé cet exemple chez CodePen;
essayez ceci: http://codepen.io/sawmac/pen/txBhK
body { font-size: 1.2em; font-family: "Helvetica Neue", Helvetica, sans-serif; margin: 50px; } .custom-counter { margin: 0; padding: 0; list-style-type: none; } .custom-counter li { counter-increment: step-counter; margin-bottom: 5px; } .custom-counter li::before { content: counter(step-counter); margin-right: 20px; font-size: 80%; background-color: rgb(180, 180, 180); color: white; font-weight: bold; padding: 3px 8px; border-radius: 11px; }
<ol class="custom-counter"> <li>This is the first item</li> <li>This is the second item</li> <li>This is the third item</li> <li>This is the fourth item</li> <li>This is the fifth item</li> <li>This is the sixth item</li> </ol>
la source