CSS: registerProperty() statische Methode
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.
Die CSS.registerProperty() statische Methode registriert
benutzerdefinierte Eigenschaften, wodurch Typrüberprüfung, Standardwerte und Eigenschaften, die ihre Werte erben oder nicht, ermöglicht werden.
Durch die Registrierung einer benutzerdefinierten Eigenschaft können Sie dem Browser mitteilen, wie sich die benutzerdefinierte Eigenschaft verhalten soll; welche Typen erlaubt sind, ob die benutzerdefinierte Eigenschaft ihren Wert erbt und welcher Standardwert für die benutzerdefinierte Eigenschaft gilt.
Syntax
CSS.registerProperty(propertyDefinition)
Parameter
propertyDefinition-
Ein Objekt, das die folgenden Eigenschaften enthält:
name-
Ein String, der den
<dashed-ident>Namen der zu definierenden Eigenschaft darstellt. syntaxOptional-
Ein String, der die erwartete Syntax der definierten Eigenschaft darstellt. Standardmäßig
"*". Siehe dieSyntax. inherits-
Ein boolescher Wert, der definiert, ob die definierte Eigenschaft vererbt werden soll (
true) oder nicht (false). Standardmäßigfalse. initialValueOptional-
Ein String, der den Anfangswert der definierten Eigenschaft darstellt.
Rückgabewert
undefined.
Ausnahmen
InvalidModificationErrorDOMException-
Der angegebene
namewurde bereits registriert. SyntaxErrorDOMException-
Der angegebene
nameist kein gültiger Name für eine benutzerdefinierte Eigenschaft (beginnt mit zwei Bindestrichen, z.B.--foo). TypeError-
Die erforderlichen
nameund/oderinheritsDictionary-Mitglieder wurden nicht bereitgestellt.
Beispiele
Das Folgende registriert eine benutzerdefinierte Eigenschaft,
--my-color, mithilfe von registerProperty() als Farbe, gibt ihr einen
Standardwert und lässt sie ihren Wert nicht erben:
window.CSS.registerProperty({
name: "--my-color",
syntax: "<color>",
inherits: false,
initialValue: "#c0ffee",
});
In diesem Beispiel wurde die benutzerdefinierte Eigenschaft --my-color mit
der Syntax <color> registriert. Wir können diese Eigenschaft jetzt verwenden, um einen
Verlauf beim Hover oder Fokus zu überblenden. Beachten Sie, dass bei der registrierten Eigenschaft die Übergänge funktionieren, bei der nicht registrierten Eigenschaft jedoch nicht!
.registered {
--my-color: #c0ffee;
background-image: linear-gradient(to right, white, var(--my-color));
transition: --my-color 1s ease-in-out;
}
.registered:hover,
.registered:focus {
--my-color: #b4d455;
}
.unregistered {
--unregistered: #c0ffee;
background-image: linear-gradient(to right, white, var(--unregistered));
transition: --unregistered 1s ease-in-out;
}
.unregistered:hover,
.unregistered:focus {
--unregistered: #b4d455;
}
button {
font-size: 3vw;
}
Wir können diese Stile einigen Schaltflächen hinzufügen:
<button class="registered">Background Registered</button>
<button class="unregistered">Background Not Registered</button>
Spezifikationen
| Specification |
|---|
| CSS Properties and Values API Level 1> # the-registerproperty-function> |