line-height
line-height bestimmt die Höhe einer Textzeile und damit den vertikalen Abstand zwischen den Zeilen. Die Eigenschaft beeinflusst die Lesbarkeit von Text maßgeblich: Zu enge Zeilen sind schwer zu lesen, zu weite lassen den Text auseinanderfallen. Der empfohlene Wert für Fließtext liegt bei 1.5 bis 1.7, für Überschriften bei 1.1 bis 1.3. Der beste Weg ist ein einheitenloser Wert (ohne px oder em), weil dieser als Multiplikator auf die jeweilige font-size wirkt und sich korrekt vererbt.
- Syntax
- line-height: normal | <number> | <length> | <percentage>
- Initialwert
- normal (ca. 1.2, browserabhängig)
- Vererbt
- Ja
- Animierbar
- Ja
- Kategorie
- Typografie
- Werte
- 5
- Beispiele
- 7
- Browser
- 5 von 5
- 4 von 5
- Stand
- 15.02.2026
Grundlagen
line-height definiert die Zeilenhöhe, also die Gesamthöhe einer Textzeile inklusive des Abstands darüber und darunter. Der sichtbare “Zeilenabstand” (Leading) ergibt sich aus der Differenz zwischen line-height und font-size, gleichmäßig aufgeteilt auf oben und unten. Bei font-size: 16px und line-height: 24px ergibt das 4px oben und 4px unten.
Der einheitenlose Wert ist die empfohlene Schreibweise. line-height: 1.5 bedeutet: Die Zeilenhöhe ist das 1,5-fache der aktuellen font-size. Der entscheidende Vorteil gegenüber Einheiten: Bei der Vererbung wird der Multiplikator weitergegeben, nicht der berechnete Wert. Ein <h1> mit font-size: 32px in einem Container mit line-height: 1.5 bekommt 48px Zeilenhöhe. Bei line-height: 24px (als fester Wert) würde der <h1> nur 24px bekommen, was bei 32px Schriftgröße dazu führt, dass die Zeilen sich überlappen.
Für Fließtext empfehlen sich Werte zwischen 1.5 und 1.7. Für Überschriften reichen 1.1 bis 1.3, weil große Schrift visuell mehr Abstand hat. Buttons und einzeilige Elemente nutzen line-height oft zur vertikalen Zentrierung: Wenn line-height gleich der Höhe des Elements ist, wird der Text vertikal zentriert.
Syntax & Werte
5 WerteBeispiele
7 BeispieleDer entscheidende Unterschied: Unitless-Werte vererben den Multiplikator, feste Werte den berechneten Wert. Bei verschachtelten Elementen mit unterschiedlichen Schriftgrößen ist das der Unterschied zwischen lesbarem und überlappenden Text.
/* Empfohlen: Multiplikator wird vererbt */
body { line-height: 1.5; }
/* h1 mit 32px → 48px Zeilenhöhe */
/* Nicht empfohlen: fester Wert wird vererbt */
body { line-height: 24px; }
/* h1 mit 32px → 24px Zeilenhöhe (Überlappung!) */<div class="lh-compare">
<div class="lh-unitless">
<div class="label">line-height: 1.5 (unitless)</div>
<p>Fließtext bei 14px: 21px Zeilenhöhe</p>
<h4>Überschrift bei 22px: 33px</h4>
</div>
<div class="lh-fixed">
<div class="label">line-height: 21px (fixed)</div>
<p>Fließtext bei 14px: 21px Zeilenhöhe</p>
<h4>Überschrift bei 22px: immer noch 21px!</h4>
</div>
</div> Für längere Texte liegt die optimale Zeilenhöhe bei 1.5 bis 1.7. Kürzere Zeilen (schmale Spalten) brauchen mehr Zeilenabstand, breitere Zeilen weniger.
/* Fließtext */
p { line-height: 1.6; }
/* Überschriften brauchen weniger */
h1, h2, h3 { line-height: 1.2; }
/* Schmale Spalten brauchen mehr */
.sidebar p { line-height: 1.8; }<div class="reading-demo">
<div class="r-tight"><div class="label">line-height: 1.2 (zu eng für Fließtext)</div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.</div>
<div class="r-normal"><div class="label">line-height: 1.5 (gut für Fließtext)</div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.</div>
<div class="r-loose"><div class="label">line-height: 1.8 (luftig, gut für schmale Spalten)</div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.</div>
</div> Für einzeilige Elemente wie Buttons oder Badges kannst du line-height gleich der Höhe des Elements setzen, um den Text vertikal zu zentrieren.
.button {
height: 40px;
line-height: 40px; /* = height → vertikal zentriert */
padding: 0 20px;
}
/* Moderne Alternative: Flexbox */
.button-modern {
display: flex;
align-items: center;
height: 40px;
padding: 0 20px;
}<div class="center-demo">
<a href="#" class="btn">Button</a>
<span class="badge">Badge</span>
</div> Große Überschriften brauchen weniger Zeilenabstand als Fließtext, weil die großen Buchstaben visuell bereits viel Platz einnehmen. Werte zwischen 1.1 und 1.3 funktionieren gut.
h1 { line-height: 1.1; } /* Sehr große Überschriften */
h2 { line-height: 1.2; } /* Mittlere Überschriften */
h3 { line-height: 1.25; } /* Kleinere Überschriften */
p { line-height: 1.6; } /* Fließtext */<div class="heading-demo">
<div><div class="label">line-height: normal (ca. 1.2)</div><h3 class="h-default">Eine Überschrift die über zwei Zeilen geht</h3></div>
<div><div class="label">line-height: 1.1 (sehr eng)</div><h3 class="h-tight">Eine Überschrift die über zwei Zeilen geht</h3></div>
<div><div class="label">line-height: 1.25 (optimal)</div><h3 class="h-good">Eine Überschrift die über zwei Zeilen geht</h3></div>
</div>