Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

<custom-ident>

Le type de données CSS <custom-ident> permet de représenter des chaînes de caractères arbitraires définies par l'utilisateur et qui sont utilisées comme argument. Ce type de données est sensible à la casse et pour chaque contexte d'utilisation, plusieurs valeurs sont exclues afin d'éviter des ambiguïtés et des erreurs.

Syntaxe

La syntaxe est proche de celle utilisée pour les identifiants CSS. Une valeur <custom-ident> est sensible à la casse et est une séquence de caractères dont les caractères peuvent être :

  • n'importe quel caractère alphanumérique ('A' à 'Z' ou 'a' à '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).

Le premier caractère de l'identifiant ne doit pas être un chiffre, un tiret suivi d'un chiffre ou un tiret suivi d'un autre tiret. Une valeur <custom-ident> ne doit pas être encadrée entre quotes ou entre doubles quotes car ce serait alors une valeur <string>.

On notera que id1, Id1, iD1 et ID1 sont des identifiants différents car leurs casses sont différentes. En revanche, il existe plusieurs façons d'échapper un même caractère et toto\? et toto\3F représentent donc le même identifiant.

Liste des valeurs interdites

Afin d'éviter des ambiguïtés dangereuses, chaque propriété qui utilise <custom-ident> définit également une liste de valeurs interdites :

animation-name
Interdit d'utiliser les valeurs CSS globales unset, initial et inherit ainsi que la valeur none.
counter-reset
counter-increment
Interdit d'utiliser les valeurs CSS globales unset, initial et inherit ainsi que la valeur none.
@counter-style
list-style-type
Interdit d'utiliser les valeurs CSS globales unset, initial et inherit ainsi que les valeurs none, inline, outside et d'autres valeurs prédéfinies, implémentées par les différents navigateurs : disc, circle, square, decimal, cjk-decimal, decimal-leading-zero, lower-roman, upper-roman, lower-greek, lower-alpha, lower-latin, upper-alpha, upper-latin, arabic-indic, armenian, bengali, cambodian, cjk-earthly-branch, cjk-heavenly-stem, cjk-ideographic, devanagari, ethiopic-numeric, georgian, gujarati, gurmukhi, hebrew, hiragana, hiragana-iroha, japanese-formal, japanese-informal, kannada, katakana, katakana-iroha, khmer, korean-hangul-formal, korean-hanja-formal, korean-hanja-informal, lao, lower-armenian, malayalam, mongolian, myanmar, oriya, persian, simp-chinese-formal, simp-chinese-informal, tamil, telugu, thai, tibetan, trad-chinese-formal, trad-chinese-informal, upper-armenian, disclosure-open et disclosure-close.
will-change
Interdit d'utiliser les valeurs CSS globales unset, initial et inherit ainsi que les valeurs will-change, auto, scroll-position et contents.

Exemples

Voici des identifiants valides

nono79            Un mélange de caractères alphanumériques.
ground-level      Un mélange de caractères alphanumériques avec un tiret.
-test             Un tiret suivi d'un mélange de caractères alphanumériques.
_internal         Un tiret bas suivi d'un mélange de caractères alphanumériques.
\22 toto          Un caractère Unicode suivi par une série de caractères alphanumériques.
bili\.bob         Le point est bien échappé.

Voici des identifiants invalides :

34rem             Il ne doit pas démarrer par un chiffre.
-12rad            Il ne doit pas démarrer par un tiret suivi d'un chiffre.
bili.bob          Il ne doit contenir que des caractères alphanumériques. _ et - n'ont pas besoin d'être échappés.
--toto            Il ne doit pas démarrer avec deux tirets.
'bilibob'         Ce n'est pas une valeur <user-ident> mais une <string>.
"bilibob"         Ce n'est pas une valeur <user-ident> mais une <string>.

Spécifications

Spécification État Commentaires
CSS Will Change Module Level 1
La définition de '<custom-ident> for will-change' dans cette spécification.
Version de travail Définition des valeurs exclues pour will-change.
CSS Counter Styles Level 3
La définition de '<custom-ident> for list-style-type' dans cette spécification.
Candidat au statut de recommandation Utilisation de <custom-ident> à la place d'une liste finie de mots-clés. Définition des valeurs exclues pour list-style-type et @counter-style.
CSS Lists and Counters Module Level 3
La définition de '<custom-ident> for counter-*' dans cette spécification.
Version de travail <identifier> est renommé en <custom-ident>. Son utilisation est ajoutée pour la propriété counter-set.
CSS Animations
La définition de '<custom-ident> for animation-name' dans cette spécification.
Version de travail Définition des valeurs exclues pour animation-name.
CSS Values and Units Module Level 3
La définition de '<custom-ident>' dans cette spécification.
Candidat au statut de recommandation <identifier> est renommé en <custom-ident>. Devient un pseudo-type et est lié aux différents cas d'utilisation pour la définition des valeurs exclues.
CSS Level 2 (Revision 1)
La définition de '<identifier>' dans cette spécification.
Recommendation Définition initiale.

Compatibilité des navigateurs

Ce type de données n'est pas un type de données « réel » mais un type artificiel permettant de simplifier la description des valeurs permises. Il n'y a donc pas de données de compatibilité stricto sensu.

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : SphinxKnight, Krenair, teoli, FredB
 Dernière mise à jour par : SphinxKnight,