syntax
Baseline
2024
Newly available
Since July 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Le descripteur CSS syntax
de la règle @ @property
définit les types de valeurs autorisées pour la propriété personnalisée CSS enregistrée.
Il contrôle la façon dont la valeur spécifiée de la propriété est traitée pour obtenir la valeur calculée.
Ce descripteur est obligatoire : s'il est absent ou invalide, la règle @property
entière est ignorée.
Syntaxe
/* Un de type de donnée */
syntax: "<color>";
/* Un combinateur '|' pour plusieurs types de données */
syntax: "<length> | <percentage>";
/* Liste de valeurs séparées par des espaces */
syntax: "<color>+";
/* Liste de valeurs séparées par des virgules */
syntax: "<length>#";
/* Mots-clés */
syntax: "small | medium | large";
/* Combinaison de type de donnée et de mot-clé */
syntax: "<length> | auto";
/* Valeur de syntaxe universelle */
syntax: "*";
Valeurs
Une chaîne de caractères (appelée chaîne de syntaxe) qui définit les valeurs autorisées. Elle peut être :
- Un ou plusieurs noms de composants de syntaxe, qui peuvent être :
- Des noms de types de données (écrits entre chevrons, comme
<color>
ou<length>
) - Des mots-clés (écrits sans chevrons, comme
auto
ounone
)
- Des noms de types de données (écrits entre chevrons, comme
- La syntaxe universelle
*
, qui accepte toute valeur CSS valide. Elle ne peut pas être multipliée ni combinée avec d'autres composants de syntaxe.
Les noms de composants de syntaxe peuvent être utilisés seuls ou multipliés et combinés de différentes façons :
-
Les multiplicateurs
+
(séparé par des espaces) et#
(séparé par des virgules) indiquent qu'une liste de valeurs est attendue. Par exemple,<color>#
signifie qu'une liste de valeurs<color>
séparées par des virgules est attendue. -
Le combinateur barre verticale (
|
) permet de créer des conditions « ou » pour la syntaxe attendue. Par exemple,<length> | auto
accepte<length>
ouauto
, et<color># | <integer>#
attend une liste de valeurs<color>
ou une liste de valeurs<integer>
, toutes deux séparées par des virgules.
Les noms de composants de syntaxe suivants sont pris en charge :
"<angle>"
-
Accepte toute valeur
<angle>
valide. "<color>"
-
Accepte toute valeur
<color>
valide. "<custom-ident>"
-
Accepte toute valeur
<custom-ident>
valide. "<image>"
-
Accepte toute valeur
<image>
valide. "<integer>"
-
Accepte toute valeur
<integer>
valide. "<length>"
-
Accepte toute valeur
<length>
valide. "<length-percentage>"
-
Accepte toute valeur
<length>
ou<percentage>
valide, ainsi que toute expressioncalc()
combinant des valeurs<length>
et<percentage>
. "<number>"
-
Accepte toute valeur
<number>
valide. "<percentage>"
-
Accepte toute valeur
<percentage>
valide. "<resolution>"
-
Accepte toute valeur
<resolution>
valide. "<string>"
-
Accepte toute valeur
<string>
valide. "<time>"
-
Accepte toute valeur
<time>
valide. "<transform-function>"
-
Accepte toute valeur
<transform-function>
valide. "<transform-list>"
-
Accepte une liste de valeurs
<transform-function>
valides. Équivalent à"<transform-function>+"
. "<url>"
-
Accepte toute valeur
<url>
valide.
Définition formelle
En lien avec les règles @ | @property |
---|---|
Valeur initiale | n/a (required) |
Valeur calculée | comme spécifié |
Syntaxe formelle
syntax =
<string>
Exemples
>Enregistrer une propriété personnalisée avec vérification de type
Cet exemple montre comment définir une propriété personnalisée --my-color
qui n'accepte que des valeurs <color>
:
@property --my-color {
syntax: "<color>";
inherits: false;
initial-value: #c0ffee;
}
En utilisant JavaScript CSS.registerProperty()
:
window.CSS.registerProperty({
name: "--my-color",
syntax: "<color>",
inherits: false,
initialValue: "#c0ffee",
});
Spécifications
Specification |
---|
CSS Properties and Values API Level 1> # the-syntax-descriptor> |
Compatibilité des navigateurs
Loading…
Voir aussi
- Autres descripteurs de
@property
:inherits
etinitial-value
- API Propriétés et valeurs CSS
- API Peinture CSS
- API Typage de modèle d'objet CSS
- API Houdini