syntax CSS-Attribut-Deskriptor
Baseline 2024>
Neu verfügbar
Seit Juli 2024 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.
Der syntax-Deskriptor der @property At-Regel definiert die erlaubten Wertetypen für die registrierte CSS-Custom-Property.
Er kontrolliert, wie der spezifizierte Wert der Eigenschaft verarbeitet wird, um den berechneten Wert abzuleiten.
Es handelt sich um einen erforderlichen Deskriptor; wenn er fehlt oder ungültig ist, ist die gesamte @property-Regel ungültig und wird ignoriert.
Syntax
/* A data type name */
syntax: "<color>";
/* A '|' combinator for multiple data types */
syntax: "<length> | <percentage>";
/* Space-separated list of values */
syntax: "<color>+";
/* Comma-separated list of values */
syntax: "<length>#";
/* Keywords */
syntax: "small | medium | large";
/* Combination of data type and keyword */
syntax: "<length> | auto";
/* Universal syntax value */
syntax: "*";
Werte
Ein String (bekannt als Syntax-String), der die erlaubten Werte definiert. Es kann eines der Folgenden sein:
- Einer oder mehrere Syntax-Komponentennamen, die sein können:
- Datentypnamen (geschrieben mit spitzen Klammern, wie
<color>oder<length>) - Schlüsselwörter (geschrieben ohne spitze Klammern, wie
autoodernone)
- Datentypnamen (geschrieben mit spitzen Klammern, wie
- Die universelle Syntax
*, die jeden gültigen CSS-Wert akzeptiert. Sie kann nicht multipliziert oder mit anderen Syntaxkomponenten kombiniert werden.
Die Syntax-Komponentennamen können allein verwendet oder in unterschiedlicher Weise multipliziert und kombiniert werden:
-
Die
+(durch Leerzeichen getrennt) und#(durch Kommas getrennt) Multiplikatoren geben an, dass eine Liste von Werten erwartet wird. Zum Beispiel bedeutet<color>#, dass eine durch Kommas getrennte Liste von<color>-Werten als Syntax erwartet wird. -
Der vertikale Strich (
|) Kombinator kann "oder"-Bedingungen für die erwartete Syntax erzeugen. Zum Beispiel akzeptiert<length> | autoentweder<length>oderauto, und<color># | <integer>#erwartet eine durch Kommas getrennte Liste von<color>-Werten oder eine durch Kommas getrennte Liste von<integer>-Werten.
Die folgenden Syntax-Komponentennamen werden unterstützt:
"<angle>"-
Akzeptiert jeden gültigen
<angle>-Wert. "<color>"-
Akzeptiert jeden gültigen
<color>-Wert. "<custom-ident>"-
Akzeptiert jeden gültigen
<custom-ident>-Wert. "<image>"-
Akzeptiert jeden gültigen
<image>-Wert. "<integer>"-
Akzeptiert jeden gültigen
<integer>-Wert. "<length>"-
Akzeptiert jeden gültigen
<length>-Wert. "<length-percentage>"-
Akzeptiert jeden gültigen
<length>- oder<percentage>-Wert und jeden gültigencalc()-Ausdruck, der<length>und<percentage>-Werte kombiniert. "<number>"-
Akzeptiert jeden gültigen
<number>-Wert. "<percentage>"-
Akzeptiert jeden gültigen
<percentage>-Wert. "<resolution>"-
Akzeptiert jeden gültigen
<resolution>-Wert. "<string>"-
Akzeptiert jeden gültigen
<string>-Wert. "<time>"-
Akzeptiert jeden gültigen
<time>-Wert. "<transform-function>"-
Akzeptiert jede gültige
<transform-function>-Funktion. "<transform-list>"-
Akzeptiert eine Liste gültiger
<transform-function>-Werte. Es ist äquivalent zu"<transform-function>+". "<url>"-
Akzeptiert jeden gültigen
<url>-Wert.
Formale Definition
| Zugehörige @-Regel | @property |
|---|---|
| Anfangswert | n/a (required) |
| Berechneter Wert | wie angegeben |
Formale Syntax
syntax =
<string>
Beispiele
>Registrierung einer benutzerdefinierten Eigenschaft mit Typprüfung
Dieses Beispiel zeigt, wie eine benutzerdefinierte Eigenschaft --my-color definiert wird, die nur <color>-Werte erlaubt:
@property --my-color {
syntax: "<color>";
inherits: false;
initial-value: #c0ffee;
}
Verwendung von JavaScript CSS.registerProperty():
window.CSS.registerProperty({
name: "--my-color",
syntax: "<color>",
inherits: false,
initialValue: "#c0ffee",
});
Spezifikationen
| Spezifikation |
|---|
| CSS Properties and Values API Level 1> # the-syntax-descriptor> |