syntax CSS-Attribut-Deskriptor
Baseline
2024
Neu verfügbar
Seit July 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> |