CSS Variables
CSS-Variablen spielen eine zentrale Rolle bei der Anpassung des Erscheinungsbildes von webforJ-Komponenten. Diese Variablen speichern wiederverwendbare Werte wie Farben, Schriftgrößen und Abstände, die konsistent in Ihrer App angewendet werden können.
Anders als traditionelle Ansätze, die auf CSS-Präprozessoren wie SASS oder LESS basierten, ermöglichen CSS-Variablen dynamisches Styling zur Laufzeit. Sie reduzieren die Wiederholung, verbessern die Wartbarkeit und machen Stylesheets leichter lesbar und verwaltbar.
CSS-Variablen definieren
CSS-Variablen werden mit einem Doppelstrich (--
) Präfix definiert und können innerhalb jedes CSS-Selectors lokalisiert werden. Die gängigste Praxis besteht jedoch darin, sie im :root
-Selector zu definieren, der sie global scopt.
:root {
--app-background: orange;
}
:root
Pseudo-KlasseDie :root
Pseudo-Klasse zielt auf das Wurzelement des Dokuments ab – typischerweise <html>
in HTML. Sie verhält sich wie html
, hat jedoch eine höhere Spezifität.
CSS-Variablen können jede Zeichenfolge enthalten, nicht nur gültige CSS-Werte. Diese Flexibilität ist besonders nützlich, wenn Sie mit JavaScript arbeiten.
html {
--app-title: webforJ;
}
Komponentenspezifische Variablen
Um eine Variable für eine bestimmte Komponente zu definieren oder zu überschreiben, deklarieren Sie sie innerhalb des Selektors der Komponente:
dwc-button {
--dwc-button-font-weight: 400;
}
Jede webforJ-Komponente unterstützt eine spezifische Reihe von CSS-Variablen, die ihr Erscheinungsbild steuern. Diese sind im Abschnitt Styling > CSS-Eigenschaften für jede Komponente dokumentiert.
CSS-Variablen verwenden
Verwenden Sie die var()
Funktion, um den Wert einer Variable in Ihren Stilen anzuwenden:
.panel {
background-color: var(--app-background);
}
Sie können auch einen Fallback-Wert angeben, falls die Variable nicht definiert ist:
.frame {
background-color: var(--app-background, red);
}
Variablen mit webforJ manipulieren
CSS-Variablen können über die webforJ-API dynamisch aktualisiert werden, was eine Echtzeitgestaltung ermöglicht:
// Setzen Sie eine CSS-Variable
button.setStyle('--dwc-button-font-weight', '400');
webforJ ermöglicht es Ihnen, JavaScript auf der Client-Seite mit der Page- oder Element-API auszuführen. Das bedeutet, dass Sie CSS-Variablen zur Laufzeit dynamisch manipulieren können, genau wie Sie es in Standard-Webanwendungen tun würden.
// Setzen Sie eine CSS-Variable
const el = document.querySelector('dwc-button');
el.style.setProperty('--dwc-button-font-weight', '400');
// Holen Sie sich eine CSS-Variable
const value = el.style.getPropertyValue('--dwc-font-size-m');