J'ai une liste ordonnée où je voudrais que le nombre initial soit 6. J'ai trouvé que cela était pris en charge (maintenant obsolète) 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 l' start
attribut)
Comment spécifieriez-vous le numéro de départ avec CSS?
html
css
html-lists
vrish88
la source
la source
<ol start="">
n'est plus obsolète en HTML5 , je continuerais donc à l'utiliser, indépendamment de ce que dit HTML4.01.la source
start="number"
craint car il ne change pas automatiquement en fonction de la numérotation qui le précède.Une autre façon de faire cela qui peut répondre à des besoins plus complexes consiste à utiliser
counter-reset
etcounter-increment
.Problème
Dites que vous vouliez quelque chose comme ça:
Vous pouvez définir
start="3"
le troisièmeli
du secondol
, mais vous devrez maintenant le modifier chaque fois que vous ajoutez un élément au premierol
Solution
Commençons par effacer le formatage de notre numérotation actuelle.
Nous aurons chaque li montrer le compteur
Maintenant, nous devons simplement nous assurer que le compteur se réinitialise uniquement sur le premier
ol
au lieu de chacun.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.
la source
ol li {...}
devrait êtreol li:before {...}
- sinon c'est la solution parfaite, merci!Je suis surpris de ne pas avoir pu trouver la réponse dans ce fil.
J'ai trouvé cette source , que j'ai résumée ci-dessous:
Pour définir l'attribut de début d'une liste ordonnée à l'aide de CSS au lieu de HTML, vous pouvez utiliser la
counter-increment
propriété comme suit:counter-increment
semble être indexé à 0, donc pour obtenir une liste commençant à 4, utilisez3
.Pour le HTML suivant
Mon résultat est
Regarde mon violon
Voir aussi la référence du wiki W3
la source
Comme d'autres l'ont suggéré, on peut utiliser l'
start
attribut d'ol
élément.Alternativement, on peut utiliser l'
value
attribut d'li
élément. Les deux attributs sont marqués comme obsolètes dans HTML 4.01 , mais pas dans HTML 5 (ol
etli
).la source
Le démarrage de la numérotation d'une liste ordonnée à un nombre différent de la valeur par défaut ("1") nécessite l'
start
attribut. Cet attribut était autorisé (non obsolète) dans la spécification HTML 4.01 (HTML 4.01 n'était pas encore une «spécification remplacée» au moment où cette question a été publiée) et est toujours autorisé dans la spécification HTML 5.2 actuelle . L'ol
élément avait également unstart
attribut facultatif dans la DTD de transition de XHTML 1.0 mais pas dans la DTD stricte de XHTML 1.0 (recherchez la chaîneATTLIST ol
et vérifiez la liste d'attributs). Donc, malgré ce que disent certains des commentaires plus anciens, l'start
attribut n'était pas obsolète ; c'était plutôt invalidedans les DTD stricts de HTML 4.01 et XHTML 1.0. Malgré ce que l'un des commentaires prétend, l'start
attribut n'est pas autorisé sur leul
élément et ne fonctionne actuellement pas dans Firefox et Chromium.Notez également qu'un séparateur de milliers ne fonctionne pas (dans les versions actuelles de Firefox et Chromium). Dans l'extrait de code suivant,
10.000
sera interprété comme10
; il en va de même pour10,000
. N'utilisez donc pas le type decounter
valeur suivant:Donc, ce que vous devez utiliser est le suivant (dans les rares cas où des valeurs supérieures à 1000 sont requises):
Certaines des autres réponses suggèrent d'utiliser la propriété CSS
counter
, mais cela va à l'encontre de la séparation traditionnelle du contenu et de la mise en page (en HTML et CSS, respectivement). Les utilisateurs ayant certaines déficiences visuelles peuvent utiliser leurs propres feuilles de style, et lescounter
valeurs peuvent être perdues en conséquence. La prise en charge du lecteur d'écran pourcounter
doit également être testée. La prise en charge du lecteur d'écran pour le contenu en CSS est une fonctionnalité relativement récente et le comportement n'est pas nécessairement cohérent. Voir Lecteurs d'écran et CSS: Sommes-nous en train de sortir du style (et du contenu)? par John Northup sur le blog WebAIM (août 2017).la source
Dans le cas où les listes sont imbriquées, il doit y avoir une gestion en laissant de côté les éléments de liste imbriqués, ce que j'ai accompli en vérifiant que le grand parent n'est pas un élément de liste.
la source
Avec CSS, il est un peu difficile de couvrir le cas où il y a des éléments de liste imbriqués, donc seul le premier niveau de liste obtient la numérotation personnalisée qui n'interrompt pas avec chaque nouvelle liste ordonnée. J'utilise le combinateur CSS '>' pour définir les chemins possibles vers les éléments de la liste qui recevront une numérotation personnalisée. Voir https://www.w3schools.com/css/css_combinators.asp
la source
Évidemment, ni @start d'une liste ordonnée <ol> ni @value d'un élément de liste <li> ne peuvent être définis via CSS. Voir https://www.w3schools.com/css/css_list.asp
Remplacer la numérotation par un compteur en CSS semble être la solution la meilleure / la plus rapide / infaillible et il y en a d'autres qui en font la promotion, par exemple https://css-tricks.com/numbering-in-style/
Avec du JavaScript pur, il est possible de définir @value de chaque élément de la liste, mais c'est bien sûr plus lent que CSS. Il n'est même pas nécessaire de vérifier si l'élément de liste appartient à une liste ordonnée <ol>, car les listes non ordonnées sont automatiquement omises.
la source