vertical-align

Zuletzt aktualisiert am 15. Februar 2026

vertical-align steuert die vertikale Ausrichtung von Inline-Elementen und Inline-Block-Elementen relativ zu ihrer Zeile. Die Eigenschaft wirkt auf <span>, <img>, <input> und andere Inline-Elemente sowie auf Tabellenzellen. Der Standardwert baseline richtet Elemente an der Grundlinie des Textes aus. Für die vertikale Zentrierung von Block-Elementen ist vertical-align nicht geeignet, dafür verwendest du Flexbox oder Grid.

Syntax
vertical-align: baseline | sub | super | text-top | text-bottom | middle | top | bottom | <length> | <percentage>
Initialwert
baseline
Vererbt
Nein
Animierbar
Ja

Grundlagen

vertical-align richtet ein Inline-Element relativ zur Zeilenbox aus, in der es sich befindet. Die Zeilenbox wird durch das höchste und tiefste Element in der Zeile definiert. baseline (Standard) richtet die Grundlinie des Elements an der Grundlinie des Elternelements aus. middle zentriert das Element vertikal relativ zur Mitte der Zeile.

Die Eigenschaft funktioniert nur auf Inline-Elementen (display: inline, display: inline-block) und Tabellenzellen (display: table-cell). Auf Block-Elementen wie <div> oder <p> hat vertical-align keinen Effekt. Das ist einer der häufigsten Irrtümer bei CSS-Anfängern: vertical-align: middle auf einem Block-Element zentriert nichts.

Bei Tabellenzellen verhält sich vertical-align anders als bei Inline-Elementen. In Tabellenzellen bestimmt es, wie der gesamte Inhalt der Zelle vertikal innerhalb der Zelle positioniert wird. top drückt den Inhalt nach oben, bottom nach unten und middle zentriert ihn. Das macht vertical-align zum einzigen nativen Weg, Inhalte in Tabellenzellen vertikal zu zentrieren.

Syntax & Werte

Wert Beschreibung Beispiel
baseline Grundlinie des Elements an der Grundlinie des Elternelements ausrichten (Standard). vertical-align: baseline
top Oberkante des Elements an der Oberkante der Zeilenbox ausrichten. vertical-align: top
bottom Unterkante des Elements an der Unterkante der Zeilenbox ausrichten. vertical-align: bottom
middle Mitte des Elements an der Mitte der Zeile ausrichten (Grundlinie + halbe x-Höhe). vertical-align: middle
text-top Oberkante an der Oberkante der Schrift des Elternelements. vertical-align: text-top
text-bottom Unterkante an der Unterkante der Schrift des Elternelements. vertical-align: text-bottom
sub Tiefgestellte Position (wie <sub>). vertical-align: sub
super Hochgestellte Position (wie <sup>). vertical-align: super
<length> Verschiebt das Element um den angegebenen Wert nach oben (positiv) oder unten (negativ). vertical-align: 4px
<percentage> Verschiebt relativ zur line-height des Elements. vertical-align: 50%
inherit Erbt den Wert explizit vom Elternelement. vertical-align: inherit

Beispiele

Icon neben Text ausrichten

Ein häufiges Problem: Ein kleines Icon (Bild oder SVG) neben Text steht nicht auf der richtigen Höhe. vertical-align: middle richtet das Icon an der Textmitte aus.

Icon neben Text ausrichten
/* Icon vertikal zentriert neben Text */
.icon {
  vertical-align: middle;
}

/* Alternative: text-bottom für Bündigkeit */
.icon {
  vertical-align: text-bottom;
}

Alle Werte im Vergleich

Die verschiedenen Werte von vertical-align im direkten Vergleich. Das orangefarbene Quadrat zeigt die Position des Inline-Elements.

Alle vertical-align Werte im Vergleich
.baseline    { vertical-align: baseline; }
.top         { vertical-align: top; }
.middle      { vertical-align: middle; }
.bottom      { vertical-align: bottom; }
.text-top    { vertical-align: text-top; }
.text-bottom { vertical-align: text-bottom; }
.sub         { vertical-align: sub; }
.super       { vertical-align: super; }

Vertikale Ausrichtung in Tabellenzellen

In Tabellenzellen bestimmt vertical-align, wo der Inhalt innerhalb der Zelle positioniert wird. Das ist besonders nützlich bei Zellen mit unterschiedlicher Inhaltshöhe.

vertical-align in Tabellenzellen
td { vertical-align: top; }    /* Inhalt oben */
td { vertical-align: middle; } /* Inhalt zentriert */
td { vertical-align: bottom; } /* Inhalt unten */

Bilder und das baseline-Problem

Bilder (<img>) sind standardmäßig Inline-Elemente und sitzen auf der Baseline. Das erzeugt einen kleinen Spalt unter dem Bild, weil Platz für Unterlängen (g, p, y) reserviert wird. vertical-align: bottom oder display: block beseitigt diesen Spalt.

Bild-Spalt mit vertical-align beheben
/* Problem: Spalt unter dem Bild */
img { vertical-align: baseline; } /* Standard */

/* Lösung 1: vertical-align ändern */
img { vertical-align: bottom; }

/* Lösung 2: Bild zum Block machen */
img { display: block; }

Barrierefreiheit

Verwende <sub> und <sup> statt vertical-align: sub und vertical-align: super für semantisch hoch- oder tiefgestellten Text. Screenreader erkennen die HTML-Elemente und können den Nutzer darauf hinweisen. Reines CSS-Styling wird von Screenreadern ignoriert. Für mathematische Formeln oder chemische Formeln sind die HTML-Elemente die richtige Wahl.

Achte darauf, dass vertikal verschobene Elemente genug Kontrast und Größe haben. Text mit vertical-align: super in kleiner Schriftgröße kann schwer lesbar sein, besonders wenn er auch noch verkleinert wird (wie der Browser es bei <sup> standardmäßig tut).

Für die vertikale Zentrierung von Layout-Elementen verwende Flexbox (align-items: center) statt display: table-cell mit vertical-align: middle. Flexbox ist semantisch korrekter, weil table-cell eine Tabellensemantik impliziert, die Screenreader verwirren kann.

Häufige Fehler

  • vertical-align auf Block-Elemente anwenden: vertical-align: middle auf einem <div> hat keinen Effekt. Die Eigenschaft wirkt nur auf Inline-Elemente, Inline-Blocks und Tabellenzellen. Verwende display: flex; align-items: center für Block-Elemente.
  • vertical-align zur vertikalen Zentrierung von Layouts verwenden: vertical-align zentriert keine Container. Es richtet nur Elemente innerhalb einer Textzeile aus. Für Layout-Zentrierung verwende Flexbox oder Grid.
  • Den Bild-Spalt ignorieren: Bilder auf baseline erzeugen einen kleinen Spalt unterhalb. Setze vertical-align: bottom oder display: block auf <img>, um den Spalt zu entfernen.
  • middle ist nicht exakt mittig: middle richtet die Mitte des Elements an der Grundlinie plus halbe x-Höhe aus. Das ist nicht exakt die Mitte der Zeile, sondern leicht nach unten verschoben. Für exakte Zentrierung verwende Flexbox.
  • vertical-align auf Flex-Items setzen: In einem Flex-Container hat vertical-align keinen Effekt. Verwende stattdessen align-items oder align-self.
  • super und sub für Layout-Zwecke missbrauchen: vertical-align: super und sub sind für typografische Hoch- und Tiefstellung gedacht, nicht für beliebige vertikale Verschiebungen. Verwende <length> oder <percentage> für präzise Positionierung.

Browser-Kompatibilität

vertical-align wird von allen Browsern vollständig unterstützt. Die Eigenschaft gehört zu den ältesten CSS-Eigenschaften und funktioniert in allen Browsern identisch.

ClientUnterstützungHinweise
ChromeKomplett
FirefoxKomplett
SafariKomplett
EdgeKomplett
OperaKomplett

Email-Kompatibilität

vertical-align funktioniert in HTML-Emails gut, besonders in Tabellen-Layouts. Es ist eine der zuverlässigsten CSS-Eigenschaften für Email-Entwicklung.

ClientUnterstützungHinweise
Apple MailKomplett
GmailKomplett
OutlookKomplettFunktioniert zuverlässig in Tabellenzellen. Auf Inline-Elementen eingeschränkt
ThunderbirdKomplett
Yahoo MailKomplett

Verwandte Eigenschaften

Bleib auf dem Laufenden

Erhalte neue Inhalte direkt in dein Postfach

Mit der Anmeldung akzeptierst du unsere Datenschutzerklärung. Du kannst dich jederzeit über den Link in den E-Mails wieder abmelden.

Was erwartet dich?

Neue Artikel & Videos

Wenn ich was Neues veröffentliche, erfährst du's hier zuerst.

Plattform & Kurs-Updates

Neue Kurse, Referenz-Updates und gelegentlich Sonderpreise zum Launch.

Einmal die Woche in deinem Postfach

Kurz, auf den Punkt, kein Spam.