Skip to content

Kapitel 14: HTML mit CSS/JS Verbindung

🔗 Lernziel: HTML mit CSS und JavaScript verbinden - den Frontend-Zyklus schließen!

14.1 HTML + CSS Verbindung

CSS benötigt Selektoren, um HTML-Elemente zu stylen.

Methode 1: class-Attribut

html
<!-- HTML -->
<div class="container">Inhalt</div>
<p class="highlight">Wichtiger Text</p>

/* CSS */
.container { max-width: 1200px; }
.highlight { color: rot; font-weight: bold; }

Methode 2: id-Attribut

html
<!-- HTML -->
<section id="hero">Heldenbereich</section>

/* CSS */
#hero { background-color: blau; padding: 50px; }

Methode 3: Inline-CSS (nicht empfohlen)

html
<p style="color: grün; font-size: 16px;">Text</p>

Goldene Regel:

  • Verwende class für wiederverwendbare Stile
  • Verwende id für einmalige Elemente
  • Vermeide Inline-CSS (schwer zu warten)

14.2 HTML + JS Verbindung

JavaScript interagiert mit HTML durch DOM-Manipulation.

Methode 1: Event-Attribute (einfach)

html
<button onclick="alert('Geklickt!')">Klick mich</button>
<input oninput="console.log(this.value)">

Methode 2: id + getElementById (häufig)

html
<!-- HTML -->
<button id="meinButton">Klick mich</button>
<p id="ausgabe"></p>

<script>
  document.getElementById('meinButton').onclick = function() {
    document.getElementById('ausgabe').innerText = 'Geklickt!';
  };
</script>

Methode 3: class + querySelector (modern)

html
<!-- HTML -->
<div class="container">
  <button class="btn">Klick mich</button>
</div>

<script>
  document.querySelector('.btn').addEventListener('click', function() {
    alert('Button geklickt!');
  });
</script>

14.3 Häufige Verbindungs-Szenarien

Szenario 1: Button-Klick

html
<button id="farbeÄndern">Farbe ändern</button>
<div id="box" style="width: 100px; height: 100px; background: rot;"></div>

<script>
  document.getElementById('farbeÄndern').onclick = function() {
    document.getElementById('box').style.backgroundColor = 'blau';
  };
</script>

Szenario 2: Formularvalidierung

html
<form id="meinForm">
  <input type="email" id="email" required>
  <button type="submit">Absenden</button>
</form>

<script>
  document.getElementById('meinForm').addEventListener('submit', function(e) {
    e.preventDefault();
    const email = document.getElementById('email').value;
    if (!email.includes('@')) {
      alert('Ungültige E-Mail!');
    } else {
      alert('Formular gesendet!');
    }
  });
</script>

Szenario 3: Bild wechseln

html
<img id="bild" src="bild1.jpg" alt="Bild">
<button id="wechseln">Bild wechseln</button>

<script>
  document.getElementById('wechseln').onclick = function() {
    document.getElementById('bild').src = 'bild2.jpg';
  };
</script>

14.4 Anfänger-freundlich: Verbindungs-Code-Beispiele

Beispiel 1: Einfaches Hover-Effekt (CSS)

html
<!DOCTYPE html>
<html lang="de">
<head>
  <style>
    .btn {
      padding: 10px 20px;
      background: blau;
      color: weiße;
      border: none;
      cursor: pointer;
    }
    .btn:hover {
      background: dunkelblau;
    }
  </style>
</head>
<body>
  <button class="btn">Maus darüber bewegen</button>
</body>
</html>

Beispiel 2: Einfache Interaktion (JS)

html
<!DOCTYPE html>
<html lang="de">
<body>
  <button id="zählerBtn">Geklickt: 0</button>
  
  <script>
    let zähler = 0;
    document.getElementById('zählerBtn').onclick = function() {
      zähler++;
      this.innerText = 'Geklickt: ' + zähler;
    };
  </script>
</body>
</html>

14.5 Praxis: HTML-Struktur + CSS + JS

Aufgabe: Erstelle eine einfache Seite mit HTML, CSS und JS.

Lösung:

html
<!DOCTYPE html>
<html lang="de">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Interaktive Seite</title>
  <style>
    /* CSS-Stile */
    body { font-family: Arial, sans-serif; padding: 20px; }
    
    .container { max-width: 800px; margin: 0 auto; }
    
    .card {
      border: 1px solid #ddd;
      padding: 20px;
      margin: 20px 0;
      border-radius: 8px;
    }
    
    .btn {
      padding: 10px 20px;
      background: #007bff;
      color: white;
      border: none;
      border-radius: 4px;
      cursor: pointer;
    }
    
    .btn:hover { background: #0056b3; }
    
    .hidden { display: none; }
  </style>
</head>
<body>
  <div class="container">
    <h1>Meine interaktive Seite</h1>
    
    <div class="card" id="infoCard">
      <h2>Willkommen!</h2>
      <p>Dies ist ein interaktives Beispiel.</p>
      <button class="btn" id="toggleBtn">Info ausblenden</button>
    </div>
    
    <div class="card">
      <h2>Zähler</h2>
      <p>Klicks: <span id="zähler">0</span></p>
      <button class="btn" id="zählerBtn">Klicken</button>
    </div>
  </div>
  
  <script>
    // JavaScript-Interaktion
    
    // 1. Info-Card ausblenden/einblenden
    let infoSichtbar = true;
    document.getElementById('toggleBtn').onclick = function() {
      const card = document.getElementById('infoCard');
      if (infoSichtbar) {
        card.classList.add('hidden');
        this.innerText = 'Info einblenden';
      } else {
        card.classList.remove('hidden');
        this.innerText = 'Info ausblenden';
      }
      infoSichtbar = !infoSichtbar;
    };
    
    // 2. Zähler erhöhen
    let zähler = 0;
    document.getElementById('zählerBtn').onclick = function() {
      zähler++;
      document.getElementById('zähler').innerText = zähler;
    };
  </script>
</body>
</html>

Erklärung:

  • HTML: Struktur ( container, card, buttons)
  • CSS: Styling ( classes: container, card, btn, hidden)
  • JS: Interaktion ( button-clicks, class toggle, zähler)

✅ Zusammenfassung

In diesem Kapitel hast du gelernt:

  • ✅ HTML + CSS verbinden (class, id, inline)
  • ✅ HTML + JS verbinden (events, getElementById)
  • ✅ Häufige Szenarien (button-klick, formular, bild-wechsel)
  • ✅ Einfache Code-Beispiele für Anfänger
  • ✅ Eine interaktive Seite mit HTML + CSS + JS zu erstellen

🎯 Nächster Schritt: In Kapitel 15 lernst du Kommentare und Code-Richtlinien!


← Zurück zu Kapitel 13: Anpassung und KompatibilitätWeiter zu Kapitel 15: Kommentare und Code-Richtlinien →

Frei für alle Anfänger