Also available in: English
CSS depuis sa version 2.1 propose un système de compteur relativement méconnu du fait d’une compatibilité relativement récente sur IE. D’autant plus que certains défendront la position suivante : CSS n’est pas fait pour cela, il faut utiliser JavaScript. Soit ! Mais sachez que ça existe. Petite introduction !
Comme je vous le disais, les compteurs existent et sont définis depuis CSS2.1 par le W3C. L’arrivée de CSS3 a permis de compléter quelque peu la définition et de l’inclure dans un module nommé « Generated and Replaced Content« .
Au cours de cet article, nous allons jouer avec trois propriétés et une fonction :
counter-reset
: cette propriété permet d’initialiser un compteur (le créer). Il suffit pour cela de renseigner un ou plusieurs noms de compteurs suivi de sa valeur numérique initiale.
Exemple :
Ici nous avons deux compteurs initialisés : compteur1 qui démarre à 4, et compteur 2 qui démarre à 0.
counter-set
: cette propriété permet de redéfinir la valeur d’un compteur, sans en créer un nouveau. Il suffit pour cela de renseigner un ou plusieurs noms de compteurs existant suivi de sa nouvelle valeur numérique.
Exemple :Ici nous avons deux compteurs redéfinis : compteur1 qui redémarre à 0, et compteur 2 qui redémarre à 3.
counter-increment
: cette propriété permet d’incrémenter un compteur. Il suffit pour cela de renseigner le nom d’un ou plusieurs compteurs, chacun suivi du chiffre à incrémenter.
Exemple :Ici nos deux compteurs initiaux seront augmentés de 2 pour le compteur1 et 4 pour le compteur2.
counter()
: cette fonction associée au pseudo-élément::before
ou::after
et à la propriétécontent
permet d’insérer le compteur dans votre page. Cela génère un contenu dynamique. Elle attend un paramètre et un second optionnel. Le premier est le nom du compteur, le second et le style de compteur. (même valeurs quelist-style-type
)
Exemple :
Dans cet exemple, le contenu d’un élément
li
sera précédé d’un contenu de type « 04 – »
Démonstration par l’exemple
Le plus simple pour présenter les fonctionnalités des compteurs, c’est de vous proposer un document bien hiérarchisé avec quelques titres de différents niveaux.
Voici la démonstration en ligne :
Démonstration des compteurs CSS
Le code utilisé en HTML est relativement simple : il suffit de faire en sorte d’avoir des h2
, h3
et h4
dans un bloc de texte, par exemple.
Je vous donne quand même un extrait si vous voulez tester :
La CSS est relativement courte en ce qui concerne les compteurs, il faut juste prêter attention aux détails.
Démonstration sur une liste numérotée
Vous allez me dire : À quoi bon ? Puisque la liste ol
est déjà numérotée.
Oui, c’est vrai, mais l’utilisation du contenu généré permet d’appliquer des styles plus riches grâce à CSS.
Un exemple en image sur ce qui est un vieux site de ma composition :
Il y a pas mal de choses à savoir sur les listes, notamment l’élément ol
. Apprenez-en plus sur les attributs start, reversed et les types de compteur.
N’hésitez pas si vous avez des questions 😉
Merci pour cet article. Je connaissais mal ces propriétés. J’étais persuadé qu’il fallait un ol pour avoir un compteur.
C’est plus intéressant et plus judicieux de modifier l’apparence via le CSS plutôt que du markup.
bonjour Geoffrey comment vas tu ?
j’apprécie bien ton site, les méthodes utilisées; je suis en 3ème année d’ingénieur des travaux informatiques et j’ai un grand grand rêve faire du design web. Tes conseils me seront vraiment les bienvenues.
Merci et à la prochaine. !!! bey
Je débute en CSS et je le cherchais ce tutoriel. Merci beaucoup pour le travail de qualité fourni.
http://caniuse.com/#feat=css-counters euh c’est moi ou c’est supporté partout !?
Ouais c’est plutôt bien supporté, mais principalement à cause de IE8, et peut-être aussi d’un manque d’intérêt, ces propriétés ont été quelque peu oubliées 🙂
En début d’article : « d’une compatibilité relativement ressente sur IE. »
*récente
Bonjour également 🙂
Merci pour ce correctif, effectivement ça ne pas la même signification !
Bonne journée.