Menu
Coddy logo textTech

Tabs

Teil des Abschnitts Practical Frontend der HTML-Journey von Coddy. Lektion 21 von 35.

Tabs sind eine Möglichkeit, content in separate Bereiche zu organisieren und dabei alles auf einer Seite zu behalten. Statt auf einer langen Seite zu scrollen, können Nutzer durch Klicken auf einen Tab zwischen content-Panels wechseln. Tabs sieht man häufig auf Einstellungsseiten, in Dashboards oder bei Produktbeschreibungen (z. B. Details, Bewertungen, FAQ).

Wir können Tabs ohne JavaScript erstellen mit:

  • Optionsfeldern (sodass immer nur ein Tab active sein kann)
  • Labels, die als anklickbare Tab-Schaltflächen fungieren
  • CSS-Selektoren (:checked), um den richtigen Inhalt anzuzeigen

HTML:

<div class="tabs">
   <input type="radio" id="tab1" name="tab" checked>
   <label for="tab1">Tab 1</label>
   <div id="content1" class="tab-content">This is the content of Tab 1.</div>
   
   <input type="radio" id="tab2" name="tab">
   <label for="tab2">Tab 2</label>
   <div id="content2" class="tab-content">This is the content of Tab 2.</div>
   
   <input type="radio" id="tab3" name="tab">
   <label for="tab3">Tab 3</label>
   <div id="content3" class="tab-content">This is the content of Tab 3.</div>
 </div>

 CSS:

<style>
  /* Hide radios */
  input { display: none; }

  /* Tab labels */
  label {
    padding: 5px 10px;
    background: lightgray;
    cursor: pointer;
  }

  /* Content hidden by default */
  .tab-content { display: none; padding: 10px; border: 1px solid #ccc; }

  /* Show content when radio is checked */
  #tab1:checked ~ #content1,
  #tab2:checked ~ #content2 {
    display: block;
  }

  /* Highlight active tab */
  #tab1:checked + label,
  #tab2:checked + label {
    background: steelblue;
    color: white;
  }
</style>

Hier ist eine kurze Erinnerung, die du den Lernenden geben könntest:

  • + (benachbartes Geschwisterelement) → wählt das unmittelbar nächste Element aus.
  • ~ (allgemeines Geschwisterelement) → wählt jedes folgende Geschwisterelement aus (nicht nur das nächste).
challenge icon

Aufgabe

Einfach

Du erhältst ein Starter-HTML mit zwei bereits eingerichteten Tabs. Deine Aufgabe besteht darin, das Tab-System zu erweitern und zu verbessern.

  1. Füge einen weiteren Tab für “Sleep” hinzu:
    • Beschriftung: Sleep
    • Inhalt: “Good sleep helps recovery and focus. Aim for 7 to 9 hours per night and keep a regular schedule.”
  2. Füge #tab3:checked ~ #content3 zum CSS-Selektor hinzu, der den Tab-Inhalt anzeigt, wenn er aktiviert ist.

Probier es selbst

<!DOCTYPE html>
<html>
<head>
  <title>Tabs</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      padding: 20px;
      background: #f9f9f9;
    }

    .tabs {
      display: flex;
      flex-direction: column;
      width: 350px;
    }

    /* Hide the radio inputs */
    .tabs input {
      display: none;
    }

    /* Tab labels */
    .tabs label {
      padding: 10px;
      background: #eee;
      cursor: pointer;
      border: 1px solid #ccc;
    }

    .tabs label:hover {
      background: #ddd;
    }

    /* Tab content */
    .tab-content {
      display: none;
      border: 1px solid #ccc;
      padding: 10px;
      background: #fff;
      line-height: 1.5;
    }

    /* Show content when radio is checked */
    #tab1:checked ~ #content1,
    #tab2:checked ~ #content2 {
      display: block;
    }

    /* Highlight active tab */
    #tab1:checked + label,
    #tab2:checked + label,
    #tab3:checked + label {
      background: #4cafef;
      color: white;
    }
  </style>
</head>
<body>
  <div class="tabs">
    <input type="radio" id="tab1" name="tab" checked>
    <label for="tab1">Nutrition</label>
    <div id="content1" class="tab-content">
      <h3>Nutrition</h3>
      <p>A balanced diet fuels your body and mind. Focus on fruits, vegetables, whole grains, and lean proteins. Avoid too much processed food.</p>
    </div>

    <input type="radio" id="tab2" name="tab">
    <label for="tab2">Exercise</label>
    <div id="content2" class="tab-content">
      <h3>Exercise</h3>
      <p>Daily movement strengthens your body and reduces health risks. Even a 30-minute walk or stretching makes a difference.</p>
    </div>

  </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

Übe selbstständig: Web-Playground