So zentrierst du Text in HTML
Nimm die CSS-Eigenschaft text-align: center an dem Element, das den Text enthält:
text-align zentriert jede Zeile im Element, auch Inline-Inhalte wie Links, Bilder und Buttons. Die Eigenschaft wird vererbt: Setzt du sie an einem Container, wird der Text in allem darin zentriert.
An den Block, nicht an das span
text-align funktioniert an Block-Containern: <p>, <div>, Überschriften, Tabellenzellen. An einem <span> oder <a> bewirkt es nichts, weil ein Inline-Element nur so breit wie sein Text ist und es keinen Platz zum Zentrieren gibt:
Die Lösung ist immer dieselbe: Verschieb text-align: center an den umgebenden Block.
Den Block zentrieren, die Zeilen linksbündig lassen
Bei einem Absatz mit mehreren Zeilen ist komplett zentrierter Text schwer zu lesen, weil jede Zeile an einer anderen Stelle beginnt. Ein übliches Muster ist, den Block auf der Seite zu zentrieren und seinen Text am Anfang auszurichten:
margin-inline: auto zentriert einen Block mit fester Breite, text-align zentriert die Zeilen darin. Wie du Kästen zentrierst (mit Flexbox, Grid oder margins), erklärt die Seite div zentrieren.
Text vertikal zentrieren
text-align wirkt nur horizontal. Um Text vertikal in einem Kasten zu zentrieren, machst du den Kasten zu einem Flex-Container:
align-items: center zentriert vertikal, justify-content: center horizontal, und text-align: center zentriert die Zeilen zueinander, wenn es mehrere sind. Der Trick mit line-height funktioniert nur für eine einzelne Textzeile in einem Kasten mit bekannter Höhe.
Alle Werte von text-align
| Wert | Ergebnis |
|---|---|
start (Standard) | Zeilen beginnen am Anfangsrand: links im Deutschen, rechts im Arabischen und Hebräischen |
end | Zeilen enden am Endrand |
center | Zeilen zentriert |
justify | Blocksatz: Zeilen reichen bis an beide Ränder (außer der letzten Zeile) |
left, right | Immer links oder immer rechts, egal in welcher Sprache |
Nimm lieber start und end statt left und right: Sie drehen sich bei Sprachen, die von rechts nach links laufen, automatisch um, wie der letzte Kasten zeigt.
Das alte center-Tag
Alte Seiten zentrieren Text mit <center> oder mit einem align-Attribut:
<center>Old way</center>
<p align="center">Also old</p>
Beides ist obsolet. Browser stellen es noch dar, damit alte Websites nicht kaputtgehen, aber im aktuellen HTML ist es ungültig und vermischt Layout mit dem Markup. Nimm text-align: center im CSS.
Text einrücken
HTML hat kein Tag zum Einrücken, und getippte Leerzeichen werden zusammengefasst (siehe Leerzeichen in HTML). Einrückungen sind CSS:
| Einrückung | CSS |
|---|---|
| Nur die erste Zeile | text-indent: 2em |
| Der ganze Block | padding-inline-start: 2em oder margin-inline-start: 2em |
| Hängend (erste Zeile ragt heraus) | padding-inline-start: 2em; text-indent: -2em |
em koppelt die Einrückung an die Schriftgröße, sie wächst also mit dem Text mit.
Häufige Fehler
text-alignan einem Inline-Element. Setz es an den umgebenden Block.- Erwarten, dass
text-aligneinen Kasten zentriert. Es zentriert Text und Inline-Inhalt, keinen Block mit fester Breite. Für Kästen nimmmargin-inline: autooder Flexbox. <center>oderalign="center"verwenden. Obsolet. Nimm CSS.- Lange Absätze zentrieren. Zentriere Überschriften und kurze Zeilen; Fließtext bleibt am Anfang ausgerichtet.
- Mit
oder Leerzeichen einrücken. Nimmtext-indentoder padding.
Häufig gestellte Fragen
Wie zentriere ich Text in HTML?
Gib dem Element, das den Text enthält, text-align: center, zum Beispiel <p style="text-align: center"> oder eine CSS-Regel wie h1 { text-align: center; }. Das zentriert jede Textzeile und allen Inline-Inhalt in diesem Element.
Warum funktioniert text-align: center an meinem span nicht?
Ein span ist inline und damit nur so breit wie sein Text, es gibt also keinen Platz zum Zentrieren. Setz text-align: center an den umgebenden Block (das <p> oder <div> drumherum) oder mach das span zu display: block.
Wie zentriere ich Text vertikal?
Mach den Container zu einer Flexbox: display: flex; align-items: center; (mit justify-content: center zentrierst du auch horizontal). Für eine einzelne Zeile in einem Kasten mit fester Höhe funktioniert auch eine line-height, die der Höhe entspricht.
Ist das <center>-Tag noch gültig?
Nein. <center> und das Attribut align="center" sind obsolet. Browser stellen sie für alte Seiten noch dar, aber neuer Code sollte text-align: center im CSS verwenden.
Wie rücke ich Text in HTML ein?
Mit CSS. text-indent: 2em rückt die erste Zeile eines Absatzes ein, und padding-inline-start: 2em oder margin-inline-start: 2em rückt den ganzen Block ein. Leerzeichen oder im Text sind keine zuverlässige Einrückung.