Type CSS <custom-ident>
Le type de données CSS <custom-ident> désigne une chaîne de caractères arbitraire définie par l'utilisateur·ice et utilisée comme identifiant. Elle est sensible à la casse et certaines valeurs sont interdites dans divers contextes pour éviter toute ambiguïté.
Syntaxe
La syntaxe est proche de celle utilisée pour les identifiants CSS. Une valeur <custom-ident> est sensibles à la casse et est une séquence de caractères dont les caractères peuvent être :
- n'importe quel caractère alphanumérique (
AàZouaàz), - n'importe quel chiffre (
0à9), - un tiret (
-) - un tiret bas (underscore) (
_), - un caractère échappé via une barre oblique inversée (
\), - un caractère Unicode (une barre oblique inversée suivie d'un à six chiffres hexadécimaux représentant le point de code Unicode).
On notera que id1, Id1, iD1 et ID1 sont des identifiants différents car ils sont sensibles à la casse.
Caractères échappés
N'importe quel point de code Unicode peut être inclus dans un <custom-ident> ou une chaîne de caractères <string> entre guillemets en l'échappant.
En CSS, il existe plusieurs façons d'échapper un caractère. Les séquences d'échappement commencent par une barre oblique inversée (\) :
- D'un à six chiffres hexadécimaux (
ABCDEF0123456789). Les chiffres hexadécimaux peuvent être suivis d'un espace. La séquence d'échappement hexadécimale est remplacée par le point de code Unicode correspondant à la valeur indiquée. L'espace permet de distinguer la séquence d'échappement d'autres chiffres hexadécimaux qui suivraient. - De tout point de code Unicode qui n'est pas un chiffre hexadécimal ni un saut de ligne.
Exemples :
- « &B » peut s'écrire
\26 Bou\000026B. - « hi.there » peut s'écrire
hi\.thereouhi\002Ethere. - « toto ? » peut s'écrire
toto\?,toto\3Foutoto\00003F.
Pour inclure un espace réel après une séquence d'échappement, il faut inclure deux espaces dans la séquence d'échappement.
Valeurs interdites
Une valeur <custom-ident> ne doit pas être placée entre des guillemets simples ou doubles, car cela correspondrait à une <string>. De plus, le premier caractère ne doit pas être un chiffre décimal, ni un tiret (-) suivi d'un chiffre décimal.
Pour éviter toute ambiguïté, chaque propriété qui utilise <custom-ident> interdit l'utilisation de certaines valeurs :
animation-name-
Interdit d'utiliser les valeurs CSS globales
unset,initialetinheritainsi que la valeurnone. counter-reset,counter-increment-
Interdit d'utiliser les valeurs CSS globales
unset,initialetinheritainsi que la valeurnone. @counter-style,list-style-type-
Interdit d'utiliser les valeurs CSS globales
unset,initialetinheritainsi que les valeurs :noneinlineoutside
De plus, de nombreuses valeurs prédéfinies sont implémentées par les différents navigateurs :
disccirclesquaredecimalcjk-decimaldecimal-leading-zerolower-romanupper-romanlower-greeklower-alphalower-latinupper-alphaupper-latinarabic-indicarmenianbengalicambodiancjk-earthly-branchcjk-heavenly-stemcjk-ideographicdevanagariethiopic-numeric