Pour pouvoir résoudre notre problème, il faut savoir utiliser les compteurs. C'est drôle comme coïncidence, mais c'est ce sur quoi va porter la suite de ce tutoriel.
Les compteurs permettent de compter (logique ?) le nombre de balises identiques contenues dans notre page web.
Un compteur a besoins d'être :
- initialisé avant sa première utilisation ;
- incrémenté ;
- inséré sur la page web.
Initialiser son compteur
Il faut d'abord donner un nom au compteur. Dans notre cas précis, on l'appellera « chapitre ».
Avant utilisation, on doit
obligatoirement initialiser notre compteur. Pour ceci, nous utilisons la propriété
counter-reset
:
Code : CSS | body {
counter-reset: chapitre; /* Nous initialisons le compteur chapitre */
}
|
Le compteur a été initialisé sur la balise
<body>
.
C'est-à-dire que celui-ci est déclenché à partir de la balise
<body>
et commencera à compter après celle-ci.
Par défaut, le compteur est initialisé à 0 mais on peut changer ça :
Code : CSS | body { counter-reset: section -1 } /* Nous initialisons le compteur section à -1 */
body { counter-reset: prout 99 } /* Nous initialisons le compteur prout à 99 */
|
Opera et Konqueror fonctionnent correctement sans que le compteur soit initialisé.
Mais ces deux navigateurs sont ainsi en contradiction avec les recommandations du W3C.
Sur Mozilla Firefox, un compteur doit être initialisé sur une balise.
Code : CSS | body:before {
counter-reset: chapitre;
}
|
Dans le cas suivant, le compteur n'est pas initialisé sur la balise
<body>
mais avant celle-ci.
Cela ne fonctionnera donc pas correctement.
Incrémenter un nombre
Un code sera plus compréhensible qu'un long discours :
Code : CSS | h1:before {
counter-increment: chapitre; /* Ajoute 1 au compteur chapitre */
}
|
La propriété
counter-increment
ajoute 1 au compteur par défaut.
Ça aussi, on peut le changer :
Code : CSS | h1:before {
counter-increment: chapitre + 4; /* Ajoute 4 au compteur chapitre */
}
|
Mais l'utilité n'est pas visible du premier coup d'œil.
Insertion du compteur
En fait, nous n'avons encore rien changé au niveau de l'apparence du site.
Le plus important reste à faire : l'insertion de notre compteur sur la page web.
Pour ceci, on utilisera la propriété
content
:
Code : CSS | h1:before {
content: counter(chapitre) ".";
}
|
Vous ne devriez pas avoir de mal à comprendre ce code.
Counter()
sert à afficher un compteur avec
content
, c'est comme
url()
qui affiche une image.
Les guillemets doubles
"..."
permettent quant à elles de signaler qu'on affiche du texte normal. Dans notre cas, on affiche un point après le nombre pour réaliser cet effet :
1 . Vive le fromage
Ce n'est pas compliqué...
Un petit résumé
Un petit résumé pour bien tout se remettre en mémoire ?
Code : CSS | body {
counter-reset: chapitre; /* Nous initialisons le compteur chapitre */
}
h1:before {
counter-increment: chapitre; /* Ajoute 1 au compteur chapitre */
content: counter(chapitre) "."; /* Affiche notre compteur */
}
|
Ce sera tout pour le fonctionnement d'un compteur.
Relisez cette partie plusieurs fois si vous en avez besoin.
Nous allons maintenant essayer de résoudre notre problème.