HTML Typografie & Textstruktur
Texte sind das Rückgrat jeder Website.
Typografie & Textstruktur
Texte sind das Rückgrat jeder Website. HTML bietet dafür eine Vielzahl von Elementen, um Inhalte nicht nur optisch, sondern auch semantisch zu strukturieren. In diesem Kapitel lernst du, welche Tags es für Überschriften, Absätze, Betonungen und spezielle Textarten gibt - und wann du sie einsetzt.
Überschriften: <h1> - <h6>
Überschriften gliedern Inhalte hierarchisch. Sie helfen sowohl Leser*innen als auch
Suchmaschinen, den Aufbau deiner Seite zu verstehen.
Die Reihenfolge ist dabei wichtig - <h1> ist die
wichtigste
Überschrift, <h6> die unwichtigste.
| Tag | Beispiel | Bedeutung |
|---|---|---|
<h1> |
Seitentitel | Einmal pro Seite - beschreibt das Hauptthema |
<h2> |
Abschnittsüberschrift | Wichtige Unterthemen |
<h3> |
Unterüberschrift | Detailunterteilungen innerhalb eines Abschnitts |
<h4> |
Kleinere Unterpunkte | Wird seltener genutzt, meist in langen Artikeln |
<h5> |
Kleiner Untertitel | Geringe Bedeutung, eher stilistisch |
<h6> |
Mini-Überschrift | Kaum Relevanz, selten verwendet |
Achte auf die Hierarchiestufen, also kein <h4>
direkt nach einer <h2>.
Eine klare Struktur ist wichtig für Barrierefreiheit und SEO. In der Praxis führt es
selten zu technischen Problemen, aber es ist schlechte Informationsarchitektur.
Absätze, Zeilen & Inline-Text
| Tag | Beispiel | Bedeutung |
|---|---|---|
<p> |
Ein normaler Absatz. |
Standardblock für Text |
<br> |
Zeilenumbruch in einem Text |
Wechsel in die nächste Zeile, kein neuer Absatz |
<span> |
Inline-Markierung | Zum Hervorheben oder Stylen einzelner Wörter im Textfluss |
<hr> |
|
Horizontale Trennlinie zur Strukturierung |
<span> ist semantisch neutral - nutze es, wenn du etwas
nur optisch hervorheben willst, nicht inhaltlich.
Betonung, Gewichtung & Bedeutung
Hier geht’s um feine Unterschiede: Fett ist nicht gleich fett - entscheidend ist, warum etwas hervorgehoben wird. HTML unterscheidet zwischen rein visueller Hervorhebung und semantischer Betonung.
Semantische Tags haben eine Bedeutung für Browser, Screenreader und Suchmaschinen - visuelle Tags ändern nur das Aussehen.
- <strong> = Bedeutung wichtig
- <em> = Tonfall betont
- <b> = nur visuell fett
- <i> = nur visuell kursiv
| Tag | Darstellung | Bedeutung |
|---|---|---|
<strong> |
starke Betonung | inhaltlich wichtig - Screenreader betonen es mit Nachdruck |
<em> |
betonte Betonung | leichtere Betonung, z. B. Tonfall oder Gegensatz |
<b> |
fett | visuell fett, ohne inhaltliche Bedeutung |
<i> |
kursiv | visuell kursiv, z. B. Sprachstile, technische Begriffe, Gedanken |
<mark> |
markiert | visuell hervorgehoben wie mit Textmarker |
<small> |
kleiner Text | Hinweise, Copyright, Fußnoten |
<del> |
zeigt gelöschten oder veralteten Text an | |
<ins> |
unterstrichen | zeigt hinzugefügten Text an |
<sup> |
E=mc2 | hochgestellter Text (Superscript) |
<sub> |
H2O | tiefgestellter Text (Subscript) |
title="" |
Das ist ein Tooltip | Tooltip beim Hovern* |
<abbr> |
HTML | Abkürzung mit Erklärung (Hover zeigt vollen Begriff) |
<time> |
Maschinenlesbares Datum/Uhrzeit für SEO & Apps |
Mobile Geräte haben keine echten Hover-Tooltips. Alternativ kannst du
<abbr> oder
benutzerdefinierte Tooltips verwenden.
Was sind benutzerdefinierte Tooltips?
Tooltips entstehen nicht nur über title="":
<p>Das ist ein <span title="Das ist ein Tooltip">Tooltip</span></p>.
Du kannst sie auch selbst mit HTML und CSS bauen. Diese sind flexibler und funktionieren auch mobil besser.
Grundidee:
<span class="tooltip" data-tip="Ich bin ein Tooltip">Hover mich</span>
Und das CSS dazu:
.tooltip {
position: relative;
cursor: help;
}
.tooltip:hover::after {
content: attr(data-tip);
position: absolute;
top: 100%;
left: 0;
background: #333;
color: #fff;
padding: .3rem .5rem;
border-radius: 4px;
font-size: .85rem;
white-space: nowrap;
}
Fazit: Für einfache Tooltips brauchst du kein JavaScript - CSS reicht völlig.
Zitate
| Tag | Darstellung | Verwendung |
|---|---|---|
<blockquote> |
Dies ist ein längeres Zitat aus einer externen Quelle. |
Längere Zitate mit Quellenangabe |
<q> |
kurzes Zitat |
Kurzform im Fließtext, Anführungszeichen unten und oben |
<cite> |
Autor oder Quelle | Angabe der Quelle eines Zitats |
Code & Spezielle Textarten
| Tag | Darstellung | Verwendung |
|---|---|---|
<code> |
<h1> |
Kurzform für Code oder Befehle im Text |
<pre> |
Mehrzeiliger Text mit Zeilenumbrüchen |
Erhält Zeilenumbrüche und Einrückungen |
<kbd> |
Cmd + C | Tastatureingaben oder Shortcuts |
<samp> |
Error 404 | Ausgabe von Programmen oder Systemen |
Für echte Daten immer Tabellen <table> verwenden,
<pre> nur für CLI-Output oder Dokumentation. Wenn du mehr
über Tabellen erfahren willst, findest du hier das Tutorial HTML Tabellen.
Spielereien — nicht für den Alltag wichtig, aber cool zu wissen
Nice: Das <pre>-Tag ist eigentlich für
Code gedacht, es kann aber auch anderweitig eingesetzt werden:
ASCII-Art
<pre>
/\_/\
( o.o )
> ^
</pre>
Für ein bisschen Art zwischendurch.
Gedichte oder Liedtexte
<pre>
Roses are red,
Violets are blue,
Whitespace matters,
And so do you.
</pre>
Wenn Zeilenumbrüche ohne <br> wichtig sind
Tabulare Daten ohne echte Tabelle
<pre>
Name Alter Stadt
Max 25 Berlin
Anna 30 München
</pre>
z.B. CLI-Output (Befehlszeilenschnittstelle).
Code
<pre><code>function hello() {
console.log("Hi!");
}</code></pre>
dann idealerweise mit <code> kombiniert
Definitionen
Wenn du einen Begriff zum ersten Mal erklärst, kannst du ihn mit
<dfn> kennzeichnen. Screenreader erkennen so:
„Das ist die Definition dieses Begriffs.“
| Tag | Beispiel | Bedeutung |
|---|---|---|
<dfn> |
HTML ist die HyperText Markup Language. |
Markiert einen Begriff, der definiert wird |
Kontaktangaben
Für Adressen, Kontaktwege oder Autor*innen-Infos gibt es ein eigenes Tag:
<address>. Es wird häufig im Footer eingesetzt.
| Tag | Beispiel | Verwendung |
|---|---|---|
<address> |
Geschrieben von DevPanicZone. E-Mail: mail@example.com |
Kontaktinformationen (Autor, Firma, Adresse) <address>Kontaktinformationen</address>
|
Schreibrichtung & Textfluss
Neben normalem Links-nach-Rechts-Text kannst du auch die Schreibrichtung beeinflussen. Das ist vor allem für internationale Inhalte wichtig.
Mit <bdo> - bidirectional override - kannst du einen Text umgekehrt
darstellen. Mit "rtl" gibst du die umgekehrte Richtung an.
dir="rtl" - direction="right to left". Eine nette Spielerei.
Dieser Text ist umgekehrt
<p><bdo dir="rtl">Dieser Text ist umgekehrt</bdo></p>
| Tag | Beispiel | Bedeutung |
|---|---|---|
<bdo> |
Dieser Text ist umgekehrt | „Bidirectional Override“ - erzwingt die Lesrichtung |
<bdi> |
Benutzername: User_123 | „Bidirectional Isolation“ - isoliert eingebetteten Text, z. B. Usernamen |
Details - Inhalt ausklappen
Ein spannendes Element: <details>. Verstecke nicht allzu wichtigen Text
und lasse dem User die Wahl, ob die Details gelesen werden. Es verhält sich wie ein Toggle.
Details - Inhalt anzeigen
Öffne und schließe dieses Element
<details> ist quasi der Container für den Inhalt.
<summary> ist der angezeigt Text, der zum Öffnen des Details
auffordert.
<details>
<summary>Inhalt anzeigen</summary>
<div>
<p>Öffne und schließe dieses Element</p>
<p>
<details> ist quasi der Container für den Inhalt.
<summary> ist der angezeigt Text, der zum Öffnen des Details
auffordert.
</p>
</div>
</details>
Worttrennung & lange Wörter
Lange Wörter können das Layout sprengen, besonders auf kleinen Bildschirmen.
Mit <wbr> kannst du Browsern erlauben, an bestimmten
Stellen umzubrechen.
Beispiel:
SehrLangesWort<p>SehrLangesWort<wbr>MitTrennstelle</p>
<wbr> ist ideal für lange URLs, Dateinamen oder deutsche
Komposita.
Sonderzeichen & HTML-Entities
Manche Zeichen haben in HTML eine besondere Bedeutung und müssen „escaped“ werden, damit sie vom Browser dargestellt werden. Die wichtigsten findest du hier:
| Entity | Zeichen | Verwendung |
|---|---|---|
< |
< | Kleiner-als-Zeichen in Code anzeigen |
> |
> | Größer-als-Zeichen |
& |
& | Und-Zeichen |
|
(festes Leerzeichen) | geschütztes Leerzeichen, z. B. bei Zahlen + Einheit |
ARIA: Zusätzliche Hinweise für Screenreader
ARIA-Attribute geben Screenreadern Extra-Informationen, wenn HTML selbst nicht genug aussagt. Für normale Texte brauchst du sie kaum - aber gut zu wissen, dass es sie gibt.
| Attribut | Beispiel | Bedeutung |
|---|---|---|
aria-label |
<span aria-label="Volltext">…</span> |
Screenreader-Text, der statt des sichtbaren Inhalts gelesen wird |
aria-labelledby |
<div aria-labelledby="title">…</div> |
Verweist auf ein anderes Element, das den Titel liefert |
aria-hidden="true" |
<span aria-hidden="true">★</span> |
Verbirgt Deko-Elemente für Screenreader |
Nutze ARIA nur, wenn die HTML-Semantik nicht ausreicht. Alles, was mit HTML selbst lösbar ist, sollte auch damit gemacht werden.
Typografie: Kleine Best Practices
Ein paar Grundregeln machen Texte im Web deutlich lesbarer. Sie sind kein Muss, aber gute Orientierung für saubere Typografie.
- Zeilenhöhe: Ideal sind
line-height: 1.4-1.7;für längere Lesetexte - Absatzlänge: 45-90 Zeichen pro Zeile sind am angenehmsten zu lesen
- Nicht mit <br> layouten:
<br>ist für echte Zeilenumbrüche gedacht - nicht für Abstände - Kontraste: Guter Hell/Dunkel-Kontrast ist wichtig für Barrierefreiheit
- Absätze: Genug "Luft lassen" (White Space), z. B.
margin-bottom:statt mehrere<br>-Tags setzen
Eine ruhige, gleichmäßige Typografie wirkt professioneller und hilft, Inhalte schneller zu erfassen.
Ruby-Anmerkungen
Für Sprachen wie Japanisch gibt es <ruby>. Damit kannst du
Aussprachen oder kleine Übersetzungen direkt über dem Text anzeigen.
漢
Wird nicht oft gebraucht, aber gut zu wissen!
Zusammenfassung
Mit diesen Elementen hast du alles, was du brauchst, um Texte in HTML korrekt und semantisch sauber zu strukturieren. So bleibt deine Website nicht nur übersichtlich, sondern auch barrierefrei und suchmaschinenfreundlich.
- <h1>-<h6>: Überschriften-Hierarchie
- <p>: Absätze
- <strong>, <em>: Bedeutung & Betonung
- <span>: neutrale Inline-Markierung, geeignet zum stylen oder für Tooltips
- <blockquote>, <q>, <cite>: Zitate & Quellen
- <code>, <pre>, <kbd>: technischer Text
Mehr aus HTML
Tutorials werden geladen...