150 votes

Est-il possible de spécifier un numéro de départ pour une liste ordonnée ?

J'ai une liste ordonnée dont je voudrais que le numéro initial soit 6. J'ai trouvé que c'était supporté par (maintenant déprécié) dans HTML 4.01. Dans cette spécification, ils disent que vous pouvez spécifier l'entier de départ en utilisant CSS. (au lieu de la balise start attribut)

Comment spécifier le numéro de départ avec CSS ?

197voto

Travis Points 3740

Si vous avez besoin de la fonctionnalité permettant de commencer une liste ordonnée (OL) à un point spécifique, vous devrez spécifier votre doctype comme HTML 5, c'est-à-dire.. :

<!doctype html>

Avec ce doctype, il est possible de définir une balise start sur une liste ordonnée. Par exemple :

<ol start="6">
  <li>Lorem</li>
  <li>Ipsum</li>
  <li>Dolor</li>
</ol>

5 votes

Cette réponse est exacte en utilisant HTML5, oui.

2 votes

L'attribut start fonctionne aussi pour les listes non ordonnées (<ul>) comme : <ul style="list-style-type:lower-roman ;" start="4"> et commencera la liste sur 'iv' ou <ul style="list-style-type:upper-alpha ;" start="4"> commençant sur 'D'.

68voto

Ms2ger Points 7551

<ol start=""> n'est plus déprécié dans HTML5 Je continuerais donc à l'utiliser, indépendamment de ce que dit HTML4.01.

38voto

ajkochanowicz Points 1763

start="number" craint parce qu'il ne change pas automatiquement en fonction de la numérotation qui le précède.

Une autre façon de procéder, qui peut répondre à des besoins plus complexes, est d'utiliser l'option counter-reset y counter-increment .

Problème

Disons que vous voulez quelque chose comme ça :

1. Item one
2. Item two

Interruption from a <p> tag

3. Item three
4. Item four

Vous pouvez définir start="3" le troisième li du second ol mais vous devrez maintenant le modifier chaque fois que vous ajouterez un élément au premier élément de la liste. ol

Solution

Tout d'abord, nettoyons le formatage de notre numérotation actuelle.

ol {
  list-style: none;
}

Nous ferons en sorte que chaque li montre le compteur

ol li:before {
  counter-increment: mycounter;
  content: counter(mycounter) ". ";
}

Maintenant, nous devons nous assurer que le compteur ne se remet à zéro qu'au premier ol au lieu de chacun d'eux.

ol:first-of-type {
  counter-reset: mycounter;
}

Démo

http://codepen.io/ajkochanowicz/pen/mJeNwY

Maintenant, je peux ajouter autant d'éléments à l'une ou l'autre liste et la numérotation sera préservée.

1. Item one
2. Item two
...
n. Item n

Interruption from a <p> tag

n+1. Item n+1
n+2. Item n+2
...

20voto

hcmcf Points 171

Je suis surpris de ne pas avoir pu trouver la réponse dans ce fil.

J'ai trouvé cette source que je résume ci-dessous :

Pour définir l'attribut de début d'une liste ordonnée à l'aide de CSS plutôt que de HTML, vous pouvez utiliser la balise counter-increment comme suit :

ol {
  list-style: none;
  counter-increment: start 3;
  }
li:before {
  content: counter(start, lower-alpha) ") ";
  counter-increment: start;
  }

counter-increment semble être indexé à 0, donc pour obtenir une liste qui commence à 4, utilisez 3 .

Pour le HTML suivant

<ol>
  <li>Buy milk</li>
  <li>Feed the dog</li>
  <li>Drink coffee</li>
</ol>

Mon résultat est le suivant

d) Buy milk
e) Feed the dog
f) Drink coffee

Regardez mon violon

Voir également le Référence wiki W3

12voto

Andrey Points 554

Comme d'autres l'ont suggéré, on peut utiliser start l'attribut de ol élément.

Alternativement, on peut utiliser value l'attribut de li élément. Les deux attributs sont marqués comme obsolètes dans HTML 4.01 mais pas en HTML 5 ( ol y li ).

<ol start="-2">
  <li>Alpha</li>
  <li>Beta</li>
  <li value="10">Gamma</li>
  <li>Delta</li>
</ol>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X