counter-reset
, counter-set
et counter-increment
.
Résumé des caractéristiques de la propriété counter-reset
none
none
counter-reset
passe d'un nombre entier à un autre, sans transition.Schéma syntaxique de counter-set
, counter-reset
et counter-increment
.
Sur les schémas, les liens donnent accès à plus des exemples de syntaxe, les termes utilisés sont décrits ci-dessous :
id
est le nom d'un compteur.integer
est un nombre entier, sans unité.- Plusieurs compteurs peuvent être traités en répétant la syntaxe séparée par un espace.
Les propriétés counter-reset
, counter-set
et counter-increment
.
Ces trois propriétés manipulent des compteurs. Ceux-ci peuvent être utilisés pour numéroter des éléments
(images, cellules d'un tableau, éléments de listes, etc).
La valeur d'un compteur peut être insérée dans le document grâce à la propriété content
.
counter-reset
crée et initialise un ou plusieurs compteurs.counter-increment
incrémente la valeur de un ou plusieurs compteurs de la valeur indiquée. Si le compteur n'existe pas encore il sera créé.counter-set
force la valeur d'un ou plusieurs compteurs à la valeur indiquée. Si le compteur n'existe pas encore il sera créé.
Si une même règle utilise plusieurs propriété relatives à un même compteur, celles-ci sont traitées dans l'ordre suivant (quelque soit l'ordre dans lequel elles apparaissent) :
- En premier les initialisations (
counter-reset
). - Ensuite les incréments (
counter-increment
). - Ensuite les définitions de valeur avec (
counter-set
). - Enfin, l'utilisation des compteurs, c'est à dire l'insertion de leur valeur dans le document
avec la syntaxe
content:counter(...);
.
Voici un exemple où trois propriétés font intervenir le même compteur : le compteur cpt1
.
Celui-ci sera d'abord initialisé, puis incrémenté, et enfin inséré dans le document, bien que cela ne corresponde
pas à l'ordre des instructions. Autrement dit, la valeur insérée sera 1
.
li {
content:counter(cpt1);
counter-increment:cpt1;
counter-reset:cpt1;
}
Le compteur list-item
.
Ce compteur, nommé list-item
, est géré de façon totalement automatique. Il est utilisé pour la numérotation des éléments dans une liste numérotée.
Les balises ol et ul l'initialisent, et les balises li l'incrémentent de 1.
Il est cependant possible pour le développeur de l'utiliser, par exemple en récupérant sa valeur avec la fonction counter()
:
(reportez-vous si nécessaire à la description de la fonction counter()
).
... {content:counter(list-item);}
Il est possible aussi d'intervenir sur son paramétrage, par exemple, le faire compter deux par deux, ou même le faire compter à l'envers. Il faut cependant garder
à l'esprit que l'incrément de 1 sera toujours effectué à chaque balise li : pour faire un comptage à l'envers il faut donc ôter 2 à la valeur de
list-item
:
li {counter-increment:list-item -2;
Les compteurs page
et pages
.
Ces compteurs représentent respectivement le numéro de la page et le nombre de pages. Ils ne sont valides que au moment de l'impression,
et sont fréquemment utilisés avec le sélecteur @page
.
Syntaxes pour counter-reset
.
- counter-reset: none;
Valeur par défaut. Aucun compteur n'est initialisé.
- counter-reset: cpt1 10;
Deux informations séparées par un espace :
- Un identifiant qui sera le nom du compteur. Dans cet exemple le compteur est nommé
cpt1
. Le nom est choisi par le développeur mais doit respecter les règles de nommage de CSS. D'autre part, le nom doit être inscrit tel quel, sans apostrophes ni guillemets. - Une valeur numérique sans unité, positive, négative ou nulle. Cette deuxième valeur sera la valeur de départ du compteur. Si la valeur de départ n'est pas indiquée, le compteur est initialisé à zéro.
- Un identifiant qui sera le nom du compteur. Dans cet exemple le compteur est nommé
- counter-reset: cpt1 10 cpt2 -1;
Cette syntaxe initialise deux compteurs : un premier compteur nommé
cpt1
, et initialisé à la valeur10
, et un deuxième compteur nommécpt2
initialisé à-1
.Cette syntaxe est la seule qui permette d'initialiser plusieurs compteurs sur un même élément. Écrire une deuxième règle avec
counter-reset
n'initialisera que le dernier compteur : CSS n'est pas un langage algorithmique, ce sont les règles de priorité habituelles qui s'appliquent.La syntaxe suivante est donc incorrecte : seul le compteur
cpt2
sera créé et initialisé.counter-reset: cpt1 10; counter-reset: cpt2 -1;
- counter-reset: initial; (
none
) counter-reset: inherit; counter-reset: revert; counter-reset: revertLayer; counter-reset: unset;Les valeurs communes sont présentées sur ces pages :
initial
,inherit
,revert
,revert-layer
,unset
.
Syntaxes pour counter-increment
.
- counter-increment: none;
Valeur par défaut. Aucun compteur n'est incrémenté.
- counter-increment: cpt1 2;
Deux valeurs séparées par un espace :
- La première valeur est le nom du compteur dont la valeur doit être modifiée. Le nom doit respecter les règles de nommage de CSS et ne doit pas être entouré de guillemets ni d'apostrophes.
- La deuxième est une valeur numérique sans unité, positive ou négative.
La valeur
0
est acceptée mais il ne sert à rien d'incrémenter un compteur de zéro. Si cette deuxième valeur est absente, le compteur est incrémenté de 1.
Remarque : si le compteur n'a pas encore été créé par
counter-reset
, il le sera à ce moment avec une valeur initiale de zéro, immédiatement incrémentée de la valeur indiquée. - counter-increment: cpt1 1 cpt2 -1;
Cette syntaxe incrémente deux compteurs : un premier compteur nommé
cpt1
est incrémenté de 1, tandis que le deuxième compteur nommécpt2
est décrémenté de 1.Il n'est pas possible d'écrire plusieurs règles successives pour incrémenter plusieurs compteurs distincts. La seule syntaxe valide est celle-ci, qui consiste à énumérer les compteurs dans la même règle.
- counter-increment: initial; (
none
) counter-increment: inherit; counter-increment: revert; counter-increment: revertLayer; counter-increment: unset;Consultez les pages suivantes pour plus de détails :
initial
,inherit
,revert
,revert-layer
,unset
.
Syntaxes pour counter-set
.
- counter-set: none;
Valeur par défaut. La valeur d'aucun compteur n'est modifiée.
- counter-set: nom-compteur 2;
Deux valeurs séparées par un espace :
- La première valeur est le nom du compteur dont la valeur doit être modifiée. Le nom ne doit pas être entouré de guillemets ni d'apostrophes.
- La deuxième est une valeur numérique sans unité, positive, négative ou nulle. Si cette deuxième valeur est absente, la valeur du compteur est initialisée à 0.
Si le compteur n'a pas encore été créé par
counter-reset
, il le sera à ce moment avec la valeur initiale indiquée. - counter-set: cpt1 1 cpt2 0
Cette syntaxe initialise les valeurs de deux compteurs : la valeur du premier compteur (
cpt1
) est fixée à 1, tandis que la valeur du deuxième compteur (cpt2
) est fixée à 0.Il ne faut pas écrire plusieurs règles successives pour initialiser les valeurs de plusieurs compteurs. La seule syntaxe valide est celle-ci, qui consiste à énumérer les compteurs et leurs valeurs respectives dans la même règle.
- counter-set: initial; (
none
) counter-set: inherit; counter-set: revert; counter-set: revertLayer; counter-set: unset;Les valeurs communes sont présentées sur ces pages :
initial
,inherit
,revert
,revert-layer
,unset
.
Exemples d'utilisation de la propriété counter-reset
.
Dans ce premier exemple, la remise à zéro du compteur est faite par la balise hr (les lignes horizontales) et son incrément par les blocs div.
(1) Toutes ces citations de Raymond Devos.
Ci-dessous nous savons utilisé deux compteurs : un pour les lignes, et un autre pour les colonnes.
Les valeurs des deux compteurs sont ensuite insérées dans chacune des cellules avec content
.
Compatibilité des navigateurs avec counter-reset
.
La gestion des compteurs est maintenant bien prise en charge par tous les navigateurs actuels.
counter-reset
, counter-set
et counter-increment
, qui permettent de gérer des compteurs personnalisés.compteurs
counter-set
counter-reset
counter-increment
Navigateurs sur ordinateurs :
Navigateurs sur mobiles :
Navigateurs obsolètes ou marginaux :

Internet Explorer

QQ Browser

Safari sur IOS

Firefox pour Androïd

Opéra Mobile

Baidu Browser

KaiOS Browser

UC Browser pour Androïd

Samsung Internet

Edge

Androïd Brower

Chrome pour Androïd

Opéra

Safari

Firefox

Chrome

Opéra mini
Histoire de la propriété counter-reset
.
-
CSS 2.1 - Spécification concernant les feuilles de styles en cascade - Révision 1
Introduction de deux propriétés de gestion des compteurs :counter-reset
etcounter-increment
.04 Novembre 1997Document de travail.24 Mars 1998Proposé à la recommandation.11 Mai 1998Recommandation. -
Module CSS - Listes et compteurs - Niveau 3
Ajout de la propriétécounter-set
.20 Février 2002Document de travail.
Voir aussi, au sujet des compteurs.
Le module de spécification qui regroupe ce qui concerne les compteurs et les listes numérotées s'appelle CSS Lists and Counters Module
(Module CSS - Listes et compteurs). La propriété counter-reset
et les propriétés ci-dessous sont décrites dans ce module :
Propriétés :
Fonctions :
counter-reset
, counter-set
et counter-increment
.