Lokale Variablen
Teil des Abschnitts Practical Frontend der HTML-Journey von Coddy — Lektion 4 von 35.
Vielleicht ist Ihnen aufgefallen, dass wir oft :root verwenden, um Variablen zu deklarieren. Das liegt daran, dass :root global ist — hier definierte Variablen gelten für die gesamte HTML-Seite (wie wir bereits erwähnt haben).
Aber manchmal möchten Sie Variablen, die sich nur auf bestimmte Teile der Seite auswirken. Stellen Sie sich zum Beispiel vor, Sie bauen einen Online-Shop mit vielen Produktkarten. Sie können Variablen innerhalb einer .card-Klasse erstellen, um nur diese Karten zu gestalten, ohne andere Elemente zu beeinflussen.
.card {
--card-color: orchid;
background-color: var(--card-color);
}Auf diese Weise funktioniert die Variable nur innerhalb von .card-Elementen, was Ihnen mehr Kontrolle über spezifische Bereiche gibt.
Aufgabe
EinfachIhnen wird eine Online-Shop-Seite mit mehreren Produktkarten zur Verfügung gestellt. Ihre Aufgabe:
- Erstellen Sie innerhalb der Klasse
.cardeine lokale CSS-Variable namens--card-accentund setzen Sie deren Wert aufcoral. - Verwenden Sie diese Variable, um die Textfarbe der
<h3>-Überschrift innerhalb der Karte festzulegen. - Verwenden Sie dieselbe Variable als Hintergrundfarbe für den
<button>der Karte.
Spickzettel
CSS-Variablen können lokal innerhalb spezifischer Selektoren definiert werden, nicht nur global in :root. Lokale Variablen gelten nur für Elemente innerhalb des Gültigkeitsbereichs dieses Selektors.
.card {
--card-color: orchid;
background-color: var(--card-color);
}Dies erstellt eine Variable --card-color, die nur innerhalb von .card-Elementen funktioniert und eine gezieltere Kontrolle über das Styling spezifischer Komponenten ermöglicht.
Probier es selbst
<html>
<head>
<title>Local Variables</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap" rel="stylesheet"> <style>
/* Global variable for body background */
:root {
--body-bg: #000f26;
--font-family: "Playfair Display", serif;
}
body {
background-color: var(--body-bg);
font-family: var(--font-family);
padding: 20px;
display: flex;
gap: 20px;
justify-content: center;
}
/* Card styles */
.card {
--card-bg: white;
background-color: var(--card-bg);
border-radius: 10px;
padding: 15px;
width: 250px;
text-align: center;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.card h3 {
margin-top: 0;
}
.card p {
font-size: 0.9rem;
color: #333;
}
.card button {
border: none;
color: #000f26;
padding: 8px 12px;
border-radius: 5px;
cursor: pointer;
font-weight: bold;
margin-top: 10px;
width: 100%;
}
</style>
</head>
<body>
<div class="card">
<h3>Classic Sneakers</h3>
<p>Comfortable and stylish sneakers for everyday wear.</p>
<button>Buy Now</button>
</div>
<div class="card special">
<h3>Luxury Watch</h3>
<p>Elegant watch with a unique design for special occasions.</p>
<button>Buy Now</button>
</div>
<div class="card">
<h3>Leather Backpack</h3>
<p>Durable, spacious backpack made from premium leather.</p>
<button>Buy Now</button>
</div>
</body>
</html>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Practical Frontend
1Variablen
VariablenCSS-Variablen verwendenVariablen für Design TokensLokale VariablenWiederholungs-Challenge7Abschlussherausforderungen
ProfilkarteSchokoladengalerie-RasterSieben WeltwunderNeue sieben Weltwunder