system
Baseline
2023
Newly available
Depuis September 2023, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.
Le descripteur CSS system permet de spécifier l'algorithme à utiliser pour convertir la valeur entière d'un compteur en une représentation sous forme de chaîne de caractères. Il est utilisé dans une règle @counter-style pour définir le comportement du style défini.
Si l'algorithme spécifié dans le descripteur system ne peut pas construire la représentation pour une certaine valeur du compteur, alors la représentation de cette valeur sera construite en utilisant le système de repli fourni.
Syntaxe
/* Valeurs avec un mot-clé */
system: cyclic;
system: numeric;
system: alphabetic;
system: symbolic;
system: additive;
system: fixed;
/* Autres valeurs */
system: fixed 3;
system: extends decimal;
system: extends circled-letters;
Valeurs
Ce descripteur peut prendre l'une des trois formes suivantes :
- L'une des valeurs clés :
cyclic,numeric,alphabetic,symbolic,additiveoufixed. - La valeur clé
fixedsuivie d'un entier. - La valeur clé
extendssuivie d'une valeur<counter-style-name>.
Les valeurs incluent :
cyclic-
Parcourt la liste des symboles fournie dans le descripteur
symbols. Une fois la fin de la liste atteinte, le cycle recommence au début. Cette valeur est utile aussi bien pour les styles de puces simples avec un seul symbole que pour les styles avec plusieurs symboles. Au moins un symbole doit être spécifié dans le descripteursymbols, sinon le style de compteur n'est pas valide. numeric-
Interprète les symboles du compteur comme des chiffres dans un système de numérotation à valeur de position (place-value numbering system). Le système numérique est similaire au système
alphabeticdécrit ci-dessus. La principale différence est que dans le systèmealphabetic, le premier symbole du compteur donné dans le descripteursymbolsest interprété comme1, le suivant comme2, etc. Cependant, dans le système numérique, le premier symbole du compteur est interprété comme 0, le suivant comme1, puis2, etc.Au moins deux symboles de compteur doivent être spécifiés dans le descripteur
symbols, sinon le style de compteur n'est pas valide. alphabetic-
Interprète les symboles spécifiés comme des chiffres, dans un système de numérotation alphabétique. Si les caractères de
"a"à"z"sont spécifiés comme symboles dans un style de compteur avec le systèmealphabetic, alors les 26 premières représentations du compteur seront"a","b"jusqu'à"z". Jusqu'à ce point, le comportement est le même que celui du systèmesymbolicdécrit ci-dessus. Cependant, après"z", cela continue avec"aa","ab","ac", etc.Le descripteur
symbolsdoit contenir au moins deux symboles, sinon le style de compteur n'est pas valide. Le premier symbole du compteur fourni dans le descripteursymbolsest interprété comme1, le suivant comme2, etc. Ce système ne fonctionne que pour les valeurs positives du compteur. symbolic-
Parcourt la liste des symboles fournie dans le descripteur
symbolsde façon répétée, doublant, triplant, etc., les symboles à chaque passage dans la liste. Par exemple, si deux symboles « ◽ » et « ◾ » sont spécifiés dans le descripteursymbols, à chaque passage, ils deviendront « ◽◽ » et « ◾◾ », puis « ◽◽◽ » et « ◾◾◾ », et ainsi de suite. Au moins un symbole doit être spécifié dans le descripteursymbols, sinon le style de compteur n'est pas valide. Ce système de compteur fonctionne uniquement pour les valeurs positives du compteur. additive-
Utilisé pour représenter les systèmes de numérotation à valeur de signe (sign-value numbering systems), comme les chiffres romains, qui, au lieu de réutiliser des chiffres à différentes positions pour obtenir différentes valeurs, définissent des chiffres supplémentaires pour les valeurs plus grandes. La valeur d'un nombre dans un tel système s'obtient en additionnant les chiffres du nombre.
Un descripteur supplémentaire appelé
additive-symbolsdoit être spécifié avec au moins un tuple additif, sinon la règle de style de compteur n'est pas valide. Un tuple additif est similaire à un symbole de compteur composite, composé de deux parties : un symbole de compteur normal et un poids entier positif ou nul. Les tuples additifs doivent être spécifiés dans l'ordre décroissant de leurs poids, sinon le système est invalide. fixedoufixed <integer>-
Définit un ensemble fini de symboles, en parcourant une seule fois la liste des symboles fournie dans le descripteur
symbols. Une fois les symboles spécifiés parcourus, le style de compteur de repli est utilisé. Cette valeur clé est utile dans les cas où les valeurs du style de compteur sont finies. Au moins un symbole doit être spécifié dans le descripteursymbols, sinon le style de compteur n'est pas valide. Le mot-cléfixedpeut être suivi d'une valeur<integer>optionnelle. Si elle est spécifiée, la valeur<integer>indique l'élément de la liste qui recevra le premier symbole de la liste des symboles. Si elle est omise, la valeur par défaut deintegerest1, ce qui donne le premier symbole au premier élément de la liste. extends-
Étend l'algorithme d'un autre style de compteur défini par le navigateur ou l'auteur·ice, en permettant de modifier certains aspects du style de compteur étendu. Tout descripteur ou valeur non spécifié sera hérité du style de compteur étendu indiqué. Si le nom du style de compteur spécifié avec
extendsn'est pas encore défini, le style de compteurdecimalsera étendu par défaut.Il ne doit pas contenir de descripteur
symbolsouadditive-symbols, sinon la règle de style de compteur sera invalide. Si une ou plusieurs définitions de styles de compteur forment un cycle avec leurs valeursextends, le navigateur considérera que tous les styles de compteur concernés étendent le styledecimal.
Note :
Le descripteur symbols est requis lorsque la valeur est cyclic, numeric, alphabetic, symbolic ou fixed. Le descripteur additive-symbols est requis si la valeur additive est définie.
Définition formelle
| En lien avec les règles @ | @counter-style |
|---|---|
| Valeur initiale | symbolic |
| Valeur calculée | comme spécifié |
Syntaxe formelle
system =
cyclic |
numeric |
alphabetic |
symbolic |
additive |
[ fixed <integer>? ] |
[ extends <counter-style-name> ]
Exemples
>Compteur cyclique
La valeur cyclic parcourt la liste des symboles, en répétant la liste si nécessaire :
CSS
@counter-style fisheye {
system: cyclic;
symbols: ◉ ➀;
suffix: ": ";
}
ul {
list-style: fisheye;
}
Résultat
Compteur fixe
La valeur fixed parcourt la liste des symboles une seule fois, en commençant le cycle unique à l'élément de liste indiqué par la valeur integer :
CSS
@counter-style circled-digits {
system: fixed 3;
symbols: ➀ ➁ ➂;
suffix: ": ";
}
ul {
list-style: circled-digits;
}
Résultat
Compteur symbolique
La valeur symbolic parcourt la liste définie dans le descripteur symbols, doublant et triplant le nombre de symboles pour le deuxième et le troisième passage dans la liste, respectivement :
CSS
@counter-style abc {
system: symbolic;
symbols: a b c;
suffix: ". ";
}
ul {
list-style: abc;
}
Résultat
Compteur alphabétique
CSS
@counter-style abc {
system: alphabetic;
symbols: a b c;
suffix: ". ";
}
ul {
list-style: abc;
}
Résultat
Compteur numérique
Le premier symbole fourni dans le descripteur symbols est interprété ici comme 0.
CSS
@counter-style abc {
system: numeric;
symbols: a b c;
suffix: ". ";
}
ul {
list-style: abc;
}
Résultat
Compteur numérique avec symboles numériques
Comme le montre l'exemple suivant, si les chiffres de 0 à 9 sont spécifiés comme symboles, ce style de compteur affichera les symboles comme le style de compteur décimal.
CSS
@counter-style numbers {
system: numeric;
symbols: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9";
suffix: ".";
}
ul {
list-style: numbers;
}
Résultat
Compteur additif
Cet exemple affiche une liste en chiffres romains. Notez qu'une plage range est spécifiée. Cela s'explique par le fait que la représentation produira des chiffres romains corrects uniquement jusqu'à la valeur de compteur 3999. Au-delà de cette plage, les autres représentations du compteur seront basées sur le style decimal, qui sert de repli. Si vous souhaitez représenter des valeurs de compteur en chiffres romains, vous pouvez utiliser l'un des styles de compteur prédéfinis, upper-roman ou lower-roman, plutôt que de recréer la règle vous-même.
HTML
Nous utilisons l'attribut start sur l'élément <ol> pour montrer que le comptage ne doit pas forcément commencer à 1. De plus, nous utilisons l'attribut value sur le cinquième élément <li> pour montrer que les compteurs que vous définissez avec @counter-style se comportent comme les compteurs natifs.
<ol start="48">
<li>48</li>
<li>49</li>
<li>50</li>
<li>51</li>
<li value="109">109</li>
<li>110</li>
<ol></ol>
</ol>
CSS
@counter-style uppercase-roman {
system: additive;
range: 1 3999;
additive-symbols:
1000 M,
900 CM,
500 D,
400 CD,
100 C,
90 XC,
50 L,
40 XL,
10 X,
9 IX,
5 V,
4 IV,
1 I;
}
ol {
list-style: uppercase-roman;
padding-left: 5em;
}
Résultat
Extension d'un compteur
Cet exemple utilise l'algorithme, les symboles et autres propriétés de lower-alpha, l'une des nombreuses valeurs natives de list-style-type, mais l'étend en supprimant le point ('.') après la représentation du compteur et en entourant les caractères de parenthèses, comme (a) et (b).
HTML
<ul class="list">
<li>Un</li>
<li>Deux</li>
<li>Trois</li>
<li>Quatre</li>
<li>Cinq</li>
</ul>
CSS
@counter-style alpha-modified {
system: extends lower-alpha;
prefix: "(";
suffix: ") ";
}
ul {
list-style: alpha-modified;
}
Résultat
Spécifications
| Specification |
|---|
| CSS Counter Styles Level 3> # counter-style-system> |
Compatibilité des navigateurs
Chargement…
Voir aussi
- Les descripteurs de
@counter-style:symbols,additive-symbols,negative,prefix,suffix,range,pad,speak-asetfallback - Propriétés de style de liste :
list-style,list-style-image,list-style-position - La fonction
symbols()pour créer des styles de compteur anonymes. - Le module de styles de compteur CSS
- Le module de listes et compteurs CSS