HTML5 Inhaltskategorien: Block, Inline & Content Models

In HTML geht es bei den sogenannten Inhaltskategorien (Content Categories / Content Models) darum, welche Elemente in welchen anderen Elementen verschachtelt werden dürfen.

Früher (in HTML4) sprach man simpel von Block- und Inline-Elementen. In HTML5 wurde dieses System durch ein präziseres Modell abgelöst. Dennoch hilft die klassische Unterscheidung weiterhin dabei, das Verhalten im Browser zu verstehen.

1. Visuelles Verhalten: Block vs. Inline (CSS)

Auf der visuellen Ebene lassen sich Elemente im Wesentlichen in drei Gruppen unterteilen: Blockelemente, Inline-Elemente und Inline-Block-Elemente.

Wichtig für das Verständnis:
HTML bestimmt ausschließlich die semantische Struktur des Dokuments. Dass sich ein <div> wie ein Block und ein <span> wie Inline verhält, liegt am internen Standard-Stylesheet des Browsers. Über die CSS-Eigenschaft display (z. B. display: block oder display: inline-block) kannst du dieses visuelle Verhalten jederzeit anpassen.

Verwandte Themen: CSS Boxmodell, CSS Bemaßen & Zentrieren


Blockelemente

article, aside, blockquote, dd, div, dl, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, hr, main, nav, noscript, ol, p, pre, section, table, ul

Inline-Elemente

a, span, b, i, strong, em, small, abbr, cite, code, dfn, kbd, sub, sup, mark, q

Inline-Block-Elemente (Ersetzte Elemente / Formulare)

img, iframe, input, textarea, select, button, video, audio, canvas

1. Block-Elemente (display: block)

Block 1 (100% Breite)
Block 2 (neue Zeile)

2. Inline-Elemente (display: inline)

Inline 1 Inline 2 (fließt daneben) Inline 3 (width/height ignoriert)

3. Inline-Block-Elemente (display: inline-block)

Inline-Block 1 (150px)
Inline-Block 2 (150px)

2. HTML5-Semantik: Flow Content vs. Phrasing Content

HTML5 unterscheidet nicht mehr starr zwischen Block und Inline, sondern nutzt überlappende Inhaltskategorien. Die zwei wichtigsten Kategorien für den Alltag sind Flow Content und Phrasing Content.

Phrasing Content (Satzinhalt)

Phrasing Content ist die moderne HTML5-Definition dessen, was man früher als Inline-Elemente bezeichnet hat. Er umfasst den Fließtext eines Dokuments sowie alle Elemente, die diesen Text strukturieren oder begleiten.

Was zählt zu Phrasing Content?

Flow Content (Dokumentfluss-Inhalt)

Flow Content ist die umfassende Oberkategorie für fast alle Elemente, die im <body> der Webseite dargestellt werden. Er umfasst sowohl große Struktur-Container (die alten Block-Elemente) als auch den gesamten Phrasing Content.

Faustregel für Verschachtelungen:
Elemente, die nur Phrasing Content erwarten (wie <p> oder <h1>), dürfen keine reinen Flow-Container (wie <div> oder <ul>) enthalten.

Übersicht: Wer darf was enthalten?

Element-Typ Erlaubter Inhalt Typische Vertreter
Phrasing-Container Nur Phrasing Content (Reiner Text, Bilder, Inline-Formatierungen) <p>, <h1><h6>, <label>, <dt>
Flow-Container Gesamter Flow Content (Divs, Absätze, Listen, Text u.v.m.) <div>, <section>, <article>, <li>, <footer>
Transparent / Flexibel Passt sich dem Eltern-Element an / erlaubt gesamten Flow Content <a> (darf in HTML5 auch ganze <div>-Blöcke umschließen)

Weiterführende Links und vollständige Kategoriemodelle:
SELFHTML Wiki: HTML5-Kategorien | MDN Web Docs: Content categories


1. Was ist Flow Content?

In HTML5 wurde das alte Konzept der strikten Unterteilung in Block-Elemente und Inline-Elemente durch ein feingliedrigeres System aus Inhaltskategorien (Content Categories) ersetzt.

Der Begriff Flow Content (Dokumentfluss-Inhalt) bildet dabei die umfassende Oberkategorie für fast alle Elemente, die sich im sichtbaren <body> einer Webseite befinden. Dazu gehören klassische Struktur-Container wie <div> und <section>, aber ebenso reiner Text, Bilder und Formatierungs-Tags.

2. Beziehung zu Block- und Inline-Elementen

Früher galt die Regel: "Block-Elemente beginnen eine neue Zeile, Inline-Elemente fließen im Text." In modernem HTML5 trennt man die Semantik (HTML) strikt vom Darstellungsverhalten (CSS).

Wichtiger Grundsatz:
HTML5 legt nur fest, welche semantische Bedeutung ein Element hat und welche Elemente ineinander verschachtelt werden dürfen. Ob ein Element eine neue Zeile erzwingt oder im Textfluss bleibt, wird ausschließlich durch die CSS-Eigenschaft display bestimmt (z. B. display: block, display: inline oder display: flex).

Phrasing Content ist eine Untermenge des Flow Content und entspricht der modernen Definition der alten Inline-Elemente. Er bezeichnet Text sowie alle Elemente, die diesen Text innerhalb eines Absatzes markieren oder strukturieren (z. B. <span>, <strong> oder <img>).

3. Übersicht: Wer darf was enthalten?

Welches HTML-Element in welches hineingeschrieben werden darf, richtet sich nach den Inhaltstypen. Die folgende Tabelle zeigt die wichtigsten Grundregeln für die Praxis:

Element-Typ Erlaubter Inhalt Typische Vertreter
Phrasing-Container Nur Phrasing Content (Reiner Text, Bilder, Inline-Formatierungen) <p>, <h1><h6>, <label>, <dt>
Flow-Container Gesamter Flow Content (Divs, Absätze, Listen, Text u.v.m.) <div>, <section>, <article>, <li>, <footer>
Transparent / Flexibel Passt sich dem Eltern-Element an / erlaubt gesamten Flow Content <a>

4. Regeln & Sonderfälle im Überblick