Menu
Coddy logo textTech

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.

challenge icon

Aufgabe

Einfach

Ihnen wird eine Online-Shop-Seite mit mehreren Produktkarten zur Verfügung gestellt. Ihre Aufgabe:

  1. Erstellen Sie innerhalb der Klasse .card eine lokale CSS-Variable namens --card-accent und setzen Sie deren Wert auf coral.
  2. Verwenden Sie diese Variable, um die Textfarbe der <h3>-Überschrift innerhalb der Karte festzulegen.
  3. 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>
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Practical Frontend