Skip to main content
Mediaweb Logo

Mediaweb

Html Leitfaden

Listen in HTML: Geordnete, ungeordnete und Definitionslisten erklärt

Meistern Sie HTML-Listen mit diesem vollständigen Leitfaden zu ul-, ol- und dl-Elementen, Verschachtelungstechniken, CSS-Styling und Barrierefreiheits-Best-Practices.

September 4, 2025
8 Min. Lesezeit
html
listen
ul
ol
dl
verschachtelte listen
css styling

HTML-Listentypen verstehen

HTML bietet drei Haupttypen von Listen, die jeweils unterschiedlichen Zwecken dienen:

  1. Ungeordnete Listen (<ul>) - Für Elemente ohne spezifische Reihenfolge
  2. Geordnete Listen (<ol>) - Für sequenzielle oder rangierte Elemente
  3. Definitionslisten (<dl>) - Für Begriff-Definition-Paare

Lassen Sie uns jeden Typ im Detail erkunden.

Das <ul>-Element für Aufzählungslisten

Ungeordnete Listen sind perfekt für die Gruppierung verwandter Elemente, bei denen die Reihenfolge keine Rolle spielt. Sie werden häufig für Navigationsmenüs, Feature-Listen und allgemeine Inhaltsorganisation verwendet.

Grundlegende Syntax ungeordneter Listen

<ul>
  <li>Erstes Element</li>
  <li>Zweites Element</li>
  <li>Drittes Element</li>
</ul>

Praxisbeispiele

Navigationsmenü:

<nav>
  <ul>
    <li><a href="/">Startseite</a></li>
    <li><a href="/ueber-uns">Über uns</a></li>
    <li><a href="/leistungen">Leistungen</a></li>
    <li><a href="/kontakt">Kontakt</a></li>
  </ul>
</nav>

Feature-Liste:

<ul>
  <li>Responsives Design</li>
  <li>Schnelle Ladezeiten</li>
  <li>SEO-optimiert</li>
  <li>Mobilfreundlich</li>
  <li>Browserübergreifend kompatibel</li>
</ul>

Einkaufsliste:

<ul>
  <li>Milch</li>
  <li>Brot</li>
  <li>Eier</li>
  <li>Käse</li>
  <li>Äpfel</li>
</ul>

Attribute ungeordneter Listen

Während modernes CSS das meiste Styling übernimmt, können Sie immer noch das type-Attribut verwenden:

<ul type="disc">   <!-- Standard: gefüllte Kreise -->
<ul type="circle"> <!-- Leere Kreise -->
<ul type="square"> <!-- Gefüllte Quadrate -->

Hinweis: Das type-Attribut ist in HTML5 veraltet. Verwenden Sie stattdessen CSS für das Styling.

Das <ol>-Element für nummerierte Listen

Geordnete Listen sind ideal, wenn die Reihenfolge oder Rangfolge der Elemente wichtig ist. Sie sind perfekt für Anleitungen, Rankings und schrittweise Prozesse.

Grundlegende Syntax geordneter Listen

<ol>
  <li>Erster Schritt</li>
  <li>Zweiter Schritt</li>
  <li>Dritter Schritt</li>
</ol>

Attribute geordneter Listen

Start-Attribut:

<ol start="5">
  <li>Fünftes Element</li>
  <li>Sechstes Element</li>
  <li>Siebtes Element</li>
</ol>

Type-Attribut:

<ol type="1">  <!-- 1, 2, 3 (Standard) -->
<ol type="A">  <!-- A, B, C -->
<ol type="a">  <!-- a, b, c -->
<ol type="I">  <!-- I, II, III -->
<ol type="i">  <!-- i, ii, iii -->

Reversed-Attribut:

<ol reversed>
  <li>Dritter Platz</li>
  <li>Zweiter Platz</li>
  <li>Erster Platz</li>
</ol>
<!-- Zeigt an: 3. Dritter Platz, 2. Zweiter Platz, 1. Erster Platz -->

Praxisbeispiele

Rezeptanleitung:

<h3>Wie man Schokoladenkekse macht</h3>
<ol>
  <li>Ofen auf 190°C vorheizen</li>
  <li>Mehl, Backpulver und Salz in einer Schüssel mischen</li>
  <li>Butter und Zucker in einer separaten Schüssel cremig rühren</li>
  <li>Eier und Vanille zur Buttermischung hinzufügen</li>
  <li>Mehlmischung schrittweise einarbeiten</li>
  <li>Schokoladenstückchen unterrühren</li>
  <li>Gehäufte Esslöffel auf ungefettete Backbleche geben</li>
  <li>9-11 Minuten backen bis goldbraun</li>
</ol>

Top 5 Programmiersprachen:

<h3>Beliebteste Programmiersprachen 2024</h3>
<ol>
  <li>JavaScript</li>
  <li>Python</li>
  <li>Java</li>
  <li>TypeScript</li>
  <li>C#</li>
</ol>

Installationsschritte:

<h3>Software-Installationsanleitung</h3>
<ol>
  <li>Installer von unserer Website herunterladen</li>
  <li>Installer als Administrator ausführen</li>
  <li>Lizenzvereinbarung akzeptieren</li>
  <li>Installationsverzeichnis wählen</li>
  <li>Zu installierende Komponenten auswählen</li>
  <li>"Installieren" klicken und auf Fertigstellung warten</li>
  <li>Computer bei Aufforderung neu starten</li>
</ol>

Listen verschachteln

Sie können Listen in anderen Listen verschachteln, um hierarchische Struktururen zu erstellen. Dies ist nützlich für die Erstellung von Untermenüs, detaillierten Gliederungen und komplexen Organisationsstrukturen.

Verschachtelte ungeordnete Listen

<ul>
  <li>Webentwicklung
    <ul>
      <li>Frontend
        <ul>
          <li>HTML</li>
          <li>CSS</li>
          <li>JavaScript</li>
        </ul>
      </li>
      <li>Backend
        <ul>
          <li>Node.js</li>
          <li>Python</li>
          <li>PHP</li>
        </ul>
      </li>
    </ul>
  </li>
  <li>Mobile Entwicklung
    <ul>
      <li>iOS</li>
      <li>Android</li>
      <li>React Native</li>
    </ul>
  </li>
</ul>

Verschachtelte geordnete Listen

<ol>
  <li>Planungsphase
    <ol type="a">
      <li>Anforderungen definieren</li>
      <li>Wireframes erstellen</li>
      <li>Mockups designen</li>
    </ol>
  </li>
  <li>Entwicklungsphase
    <ol type="a">
      <li>Entwicklungsumgebung einrichten</li>
      <li>Kernfunktionalität entwickeln</li>
      <li>Benutzeroberfläche implementieren</li>
    </ol>
  </li>
  <li>Testphase
    <ol type="a">
      <li>Unit-Tests</li>
      <li>Integrationstests</li>
      <li>Benutzerakzeptanztests</li>
    </ol>
  </li>
</ol>

Gemischte verschachtelte Listen

<ol>
  <li>Frühstücksoptionen
    <ul>
      <li>Müsli
        <ul>
          <li>Cornflakes</li>
          <li>Haferflocken</li>
          <li>Granola</li>
        </ul>
      </li>
      <li>Warme Optionen
        <ul>
          <li>Pfannkuchen</li>
          <li>Waffeln</li>
          <li>French Toast</li>
        </ul>
      </li>
    </ul>
  </li>
  <li>Mittagsoptionen
    <ul>
      <li>Sandwiches</li>
      <li>Salate</li>
      <li>Suppen</li>
    </ul>
  </li>
</ol>

Verwendung von <dl>, <dt> und <dd> für Definitionen

Definitionslisten sind perfekt für Glossare, FAQs, Produktspezifikationen und alle Inhalte, die Begriffe mit ihren Beschreibungen paaren.

Struktur von Definitionslisten

<dl>
  <dt>Begriff 1</dt>
  <dd>Definition oder Beschreibung von Begriff 1</dd>
  
  <dt>Begriff 2</dt>
  <dd>Definition oder Beschreibung von Begriff 2</dd>
</dl>

Praxisbeispiele

Glossar:

<dl>
  <dt>HTML</dt>
  <dd>HyperText Markup Language - die Standardauszeichnungssprache für die Erstellung von Webseiten</dd>
  
  <dt>CSS</dt>
  <dd>Cascading Style Sheets - wird zur Beschreibung der Darstellung eines in HTML geschriebenen Dokuments verwendet</dd>
  
  <dt>JavaScript</dt>
  <dd>Eine Programmiersprache, die interaktive Webseiten und dynamische Inhalte ermöglicht</dd>
  
  <dt>Responsive Design</dt>
  <dd>Ein Ansatz im Webdesign, der Webseiten auf verschiedenen Geräten und Bildschirmgrößen gut darstellt</dd>
</dl>

Produktspezifikationen:

<dl>
  <dt>Bildschirmgröße</dt>
  <dd>15,6 Zoll</dd>
  
  <dt>Auflösung</dt>
  <dd>1920 x 1080 Pixel</dd>
  
  <dt>Prozessor</dt>
  <dd>Intel Core i7-11800H</dd>
  
  <dt>Arbeitsspeicher</dt>
  <dd>16GB DDR4 RAM</dd>
  
  <dt>Speicher</dt>
  <dd>512GB SSD</dd>
  
  <dt>Gewicht</dt>
  <dd>1,9 kg</dd>
</dl>

FAQ-Bereich:

<dl>
  <dt>Wie lautet Ihre Rückgaberichtlinie?</dt>
  <dd>Wir bieten eine 30-tägige Rückgaberichtlinie für alle unbenutzten Artikel in Originalverpackung. Rücksendekosten werden vom Kunden getragen, es sei denn, der Artikel war defekt.</dd>
  
  <dt>Wie lange dauert der Versand?</dt>
  <dd>Standardversand dauert 3-5 Werktage. Expressversand dauert 1-2 Werktage. Internationaler Versand variiert je nach Standort.</dd>
  
  <dt>Bieten Sie Kundensupport an?</dt>
  <dd>Ja, wir bieten 24/7 Kundensupport per E-Mail, Telefon und Live-Chat. Unser Support-Team ist immer bereit, bei Fragen oder Problemen zu helfen.</dd>
</dl>

Mehrere Beschreibungen

Ein Begriff kann mehrere Beschreibungen haben:

<dl>
  <dt>JavaScript</dt>
  <dd>Eine hochrangige Programmiersprache</dd>
  <dd>Häufig für Webentwicklung verwendet</dd>
  <dd>Unterstützt objektorientierte und funktionale Programmierparadigmen</dd>
  
  <dt>Python</dt>
  <dd>Eine interpretierte, hochrangige Programmiersprache</dd>
  <dd>Bekannt für ihre einfache und lesbare Syntax</dd>
  <dd>Beliebt für Data Science, Webentwicklung und Automatisierung</dd>
</dl>

Mehrere Begriffe, eine Beschreibung

Mehrere Begriffe können dieselbe Beschreibung teilen:

<dl>
  <dt>Frontend</dt>
  <dt>Client-seitig</dt>
  <dt>Benutzeroberfläche</dt>
  <dd>Der Teil einer Website oder Anwendung, mit dem Benutzer direkt interagieren</dd>
  
  <dt>Backend</dt>
  <dt>Server-seitig</dt>
  <dd>Die serverseitige Logik und Infrastruktur, die eine Website oder Anwendung antreibt</dd>
</dl>

Listen mit CSS stylen

Während HTML die Struktur bereitstellt, erweckt CSS Listen mit benutzerdefiniertem Styling zum Leben.

Grundlegendes Listen-Styling

/* Standard-Styling entfernen */
ul, ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Benutzerdefinierte Aufzählungszeichen */
ul li {
  position: relative;
  padding-left: 20px;
}

ul li::before {
  content: "•";
  color: #007bff;
  font-weight: bold;
  position: absolute;
  left: 0;
}

Horizontale Navigationslisten

.nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 20px;
}

.nav-list li {
  display: inline-block;
}

.nav-list a {
  text-decoration: none;
  color: #333;
  padding: 10px 15px;
  border-radius: 5px;
  transition: background-color 0.3s;
}

.nav-list a:hover {
  background-color: #f0f0f0;
}
<ul class="nav-list">
  <li><a href="/">Startseite</a></li>
  <li><a href="/ueber-uns">Über uns</a></li>
  <li><a href="/leistungen">Leistungen</a></li>
  <li><a href="/kontakt">Kontakt</a></li>
</ul>

Gestylte geordnete Listen

.custom-ordered {
  counter-reset: item;
  padding: 0;
  list-style: none;
}

.custom-ordered li {
  counter-increment: item;
  margin-bottom: 10px;
  padding-left: 40px;
  position: relative;
}

.custom-ordered li::before {
  content: counter(item);
  background: #007bff;
  color: white;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  left: 0;
  top: 0;
  font-weight: bold;
  font-size: 14px;
}

Definitionslisten-Styling

.styled-dl {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 10px 20px;
  max-width: 600px;
}

.styled-dl dt {
  font-weight: bold;
  color: #333;
  padding: 10px 0;
  border-bottom: 1px solid #eee;
}

.styled-dl dd {
  padding: 10px 0;
  margin: 0;
  border-bottom: 1px solid #eee;
  color: #666;
}

Verschachtelte Listen stylen

.nested-list {
  list-style: none;
  padding: 0;
}

.nested-list li {
  margin: 5px 0;
  padding-left: 20px;
  position: relative;
}

.nested-list > li::before {
  content: "▶";
  position: absolute;
  left: 0;
  color: #007bff;
}

.nested-list ul {
  margin-top: 10px;
  padding-left: 20px;
}

.nested-list ul li::before {
  content: "▸";
  color: #666;
}

Best Practices für Barrierefreiheit

Barrierefreie Listen zu erstellen stellt sicher, dass alle Benutzer Ihre Inhalte effektiv navigieren und verstehen können.

Semantisches HTML

<!-- Gut: Semantische Navigation -->
<nav aria-label="Hauptnavigation">
  <ul>
    <li><a href="/" aria-current="page">Startseite</a></li>
    <li><a href="/ueber-uns">Über uns</a></li>
    <li><a href="/kontakt">Kontakt</a></li>
  </ul>
</nav>

<!-- Gut: Klarer Listenzweck -->
<h3>Erforderliche Dokumente</h3>
<ul>
  <li>Führerschein oder Ausweis</li>
  <li>Einkommensnachweis</li>
  <li>Kontoauszüge</li>
</ul>

ARIA-Labels und Beschreibungen

<ul aria-label="Social Media Links">
  <li><a href="#" aria-label="Folgen Sie uns auf Facebook">Facebook</a></li>
  <li><a href="#" aria-label="Folgen Sie uns auf Twitter">Twitter</a></li>
  <li><a href="#" aria-label="Folgen Sie uns auf Instagram">Instagram</a></li>
</ul>

Tastaturnavigation

/* Sicherstellen, dass Fokusindikatoren sichtbar sind */
.nav-list a:focus {
  outline: 2px solid #007bff;
  outline-offset: 2px;
}

/* Zum Inhalt springen Link */
.skip-link {
  position: absolute;
  top: -40px;
  left: 6px;
  background: #000;
  color: white;
  padding: 8px;
  text-decoration: none;
  z-index: 1000;
}

.skip-link:focus {
  top: 6px;
}

Häufige Listenfehler vermeiden

1. Listen nur für Layout verwenden

<!-- Falsch: Listen nur für Styling verwenden -->
<ul>
  <li><div>Nicht wirklich verwandter Inhalt</div></li>
  <li><div>Nur für CSS-Styling verwendet</div></li>
</ul>

<!-- Richtig: Angemessene Elemente verwenden -->
<div class="card-grid">
  <div class="card">Inhalt 1</div>
  <div class="card">Inhalt 2</div>
</div>

2. Fehlende Listenelemente

<!-- Falsch: Direkter Inhalt in Liste -->
<ul>
  Etwas Text direkt in der Liste
  <li>Erstes Element</li>
  <li>Zweites Element</li>
</ul>

<!-- Richtig: Aller Inhalt in Listenelementen -->
<ul>
  <li>Etwas Text in einem Listenelement</li>
  <li>Erstes Element</li>
  <li>Zweites Element</li>
</ul>

3. Unsachgemäße Verschachtelung

<!-- Falsch: Listenelement außerhalb des Elternelements -->
<ul>
  <li>Element 1</li>
  <li>Element 2</li>
</ul>
<li>Verwaistes Element</li>

<!-- Richtig: Ordnungsgemäße Verschachtelung -->
<ul>
  <li>Element 1</li>
  <li>Element 2</li>
  <li>Element 3</li>
</ul>

4. Falschen Listentyp verwenden

<!-- Falsch: Ungeordnete Liste für Schritte -->
<ul>
  <li>Zuerst das machen</li>
  <li>Dann das machen</li>
  <li>Schließlich das machen</li>
</ul>

<!-- Richtig: Geordnete Liste für sequenzielle Schritte -->
<ol>
  <li>Zuerst das machen</li>
  <li>Dann das machen</li>
  <li>Schließlich das machen</li>
</ol>

Fortgeschrittene Listentechniken

Benutzerdefinierte Listenzähler

.custom-counter {
  counter-reset: section;
  list-style: none;
  padding: 0;
}

.custom-counter li {
  counter-increment: section;
  margin-bottom: 10px;
}

.custom-counter li::before {
  content: "Schritt " counter(section) ": ";
  font-weight: bold;
  color: #007bff;
}

Interaktive Listen

<ul class="interactive-list">
  <li>
    <input type="checkbox" id="task1">
    <label for="task1">Projektvorschlag fertigstellen</label>
  </li>
  <li>
    <input type="checkbox" id="task2">
    <label for="task2">Kundenfeedback überprüfen</label>
  </li>
  <li>
    <input type="checkbox" id="task3">
    <label for="task3">Projektzeitplan aktualisieren</label>
  </li>
</ul>
.interactive-list {
  list-style: none;
  padding: 0;
}

.interactive-list li {
  margin: 10px 0;
  padding: 10px;
  background: #f9f9f9;
  border-radius: 5px;
}

.interactive-list input[type="checkbox"] {
  margin-right: 10px;
}

.interactive-list input[type="checkbox"]:checked + label {
  text-decoration: line-through;
  color: #666;
}

Zusammenfassung der Best Practices

  1. Den richtigen Listentyp wählen basierend auf der Inhaltsbedeutung
  2. Semantisches HTML verwenden für bessere Barrierefreiheit und SEO
  3. Klare Überschriften bereitstellen um Listeninhalte einzuführen
  4. Mit CSS stylen anstatt veraltete HTML-Attribute zu verwenden
  5. Tastaturzugänglichkeit sicherstellen für interaktive Listen
  6. ARIA-Labels verwenden wenn der Listenzweck nicht klar ist
  7. Ordnungsgemäß verschachteln und HTML validieren
  8. Mit Screenreadern testen um Barrierefreiheit sicherzustellen
  9. Listenelemente prägnant halten und scannbar machen
  10. Konsistente Formatierung verwenden auf der gesamten Website

Fazit

HTML-Listen sind mächtige Werkzeuge für die effektive Organisation und Präsentation von Informationen. Durch das Verständnis, wann und wie ungeordnete Listen, geordnete Listen und Definitionslisten verwendet werden, können Sie gut strukturierte, barrierefreie und benutzerfreundliche Webinhalte erstellen.

Denken Sie daran, dass der Schlüssel zur effektiven Listenverwendung darin liegt, den richtigen Typ für die Bedeutung und den Zweck Ihres Inhalts zu wählen. Kombiniert mit durchdachtem CSS-Styling und Barrierefreiheitsüberlegungen werden Listen zu wesentlichen Bausteinen für die Erstellung ansprechender und professioneller Web-Erfahrungen.

Beginnen Sie mit der Implementierung dieser Listentechniken in Ihren Projekten, und Sie werden verbesserte Inhaltsorganisation, bessere Benutzererfahrung und erhöhte Barrierefreiheit auf Ihren Websites bemerken.

Zuletzt aktualisiert: October 3, 2025

Verwandte Artikel

Lesen Sie weiter mit diesen verwandten Artikeln