Menu

HTML Zeilenumbruch: das br-Tag, neue Zeilen und wbr

Mit <br> beginnst du eine neue Zeile innerhalb eines Textblocks. Hier lernst du, wann <br> richtig ist und wann ein Absatz besser passt, wie du Zeilenumbrüche aus deinem Text übernimmst, wie lange Wörter mit <wbr> umbrechen dürfen und wie du einen Umbruch verhinderst.

Diese Seite enthält ausführbare Editoren - bearbeiten, ausführen und Ausgabe sofort sehen.

So fügst du einen Zeilenumbruch ein

Setz <br> dorthin, wo die neue Zeile beginnen soll. Es ist ein Void-Element, hat also kein schließendes Tag:

Die Adresse bricht genau an jedem <br> um. Der zweite Absatz bleibt in einer Zeile, obwohl der Quelltext einen Zeilenumbruch enthält: HTML behandelt Zeilenumbrüche, Tabs und mehrere Leerzeichen hintereinander als ein einziges Leerzeichen. Genau deshalb gibt es <br>.

<br>, <br/> und <br /> erzeugen alle dasselbe Element. Nimm die Variante, die dein Projekt verwendet (JSX und XHTML verlangen den Schrägstrich).

br vs. p: Umbrüche sind keine Abstände

Ein <br> beendet eine Zeile innerhalb desselben Absatzes. Ein neues <p> beginnt einen neuen Absatz, mit Abstand darüber und darunter durch die Standard-margins. <br>-Tags zu stapeln, um Platz zu schaffen, funktioniert zwar, ist aber fragil und sagt inhaltlich das Falsche:

Beide Kästen sehen ähnlich aus, aber der erste ist für einen Screenreader ein einziger Absatz, und wer den Abstand ändern will, muss jede Seite bearbeiten. Im zweiten ist die Lücke eine Zeile CSS.

Gute Einsätze für <br>: Adressen, Gedichte und Liedtexte sowie Zeilen in einer Signatur, also überall dort, wo der Umbruch zum Text gehört. Für alles andere nimmst du Absätze, Listen oder Überschriften.

Zeilenumbrüche aus deinem Text übernehmen

Wenn Text von woanders kommt (aus einem Kommentarfeld, einer Datenbank, einem Skript), enthält er echte Zeilenumbruchzeichen statt <br>-Tags. Mit der CSS-Eigenschaft white-space: pre-line zeigt der Browser diese Zeilenumbrüche als neue Zeilen an:

Derselbe String steht im grauen Kasten in einer Zeile und im blauen in drei Zeilen. Das ist außerdem sicherer, als <br>-Tags per innerHTML in Nutzertext einzubauen, womit Nutzer HTML einschleusen könnten. Um auch Leerzeichen und Einrückung zu erhalten, nimm white-space: pre; das erklärt die Seite zu Leerzeichen in HTML.

Lange Wörter umbrechen lassen: wbr

Ein langes Wort oder eine URL ohne Leerzeichen kann aus einem schmalen Kasten herauslaufen. <wbr> markiert eine Stelle, an der der Browser die Zeile umbrechen darf, wenn es nötig ist, und bewirkt sonst nichts:

Der erste Pfad läuft aus seinem Kasten heraus; der zweite bricht an den <wbr>-Stellen um. Bei Text, den du nicht kontrollierst, bricht die CSS-Eigenschaft overflow-wrap: anywhere lange Wörter stattdessen an beliebiger Stelle um.

Einen Zeilenumbruch verhindern

Manchmal willst du das Gegenteil: „10 km“ oder eine Telefonnummer zusammenhalten. Dafür gibt es zwei Werkzeuge:

&nbsp; ist ein Leerzeichen, an dem der Browser nicht umbricht, also bleiben „10“ und „km“ zusammen. white-space: nowrap hält ein ganzes span in einer Zeile. Ersetze &nbsp; durch ein normales Leerzeichen oder entferne die Klasse, und bei dieser Breite verteilt sich beides auf zwei Zeilen.

Häufige Fehler

  • Im Quelltext Enter drücken und eine neue Zeile erwarten. Zeilenumbrüche sind in HTML Leerzeichen. Nimm <br>, getrennte Elemente oder white-space: pre-line.
  • <br><br><br> für Abstände stapeln. Nimm Absätze und margin.
  • Eine Liste mit <br> bauen. Nimm <ul> oder <ol> mit <li>, die Screenreader als Liste ansagen.
  • </br> schreiben. Das ist ungültig. Schreib <br>.
  • <br> per innerHTML in Nutzertext einfügen. Setz stattdessen textContent und nimm white-space: pre-line.

Häufig gestellte Fragen

Wie mache ich einen Zeilenumbruch in HTML?

Setz <br> an die Stelle, an der die neue Zeile beginnen soll: Line one<br>Line two. Enter in deiner HTML-Datei zu drücken funktioniert nicht, weil Browser Zeilenumbrüche im Quelltext als normale Leerzeichen behandeln.

Schreibe ich <br>, <br/> oder <br />?

Alle drei funktionieren in HTML und erzeugen dasselbe Element. <br> ist die reine HTML-Form; die Varianten mit Schrägstrich werden aus Kompatibilität mit XHTML und JSX akzeptiert. </br> allein ist ungültig, auch wenn Browser es als weiteren Zeilenumbruch lesen.

Wann nehme ich <br> statt <p>?

Nimm <br>, wenn der Zeilenumbruch zum Inhalt selbst gehört, etwa in einer Adresse oder einem Gedicht. Für getrennte Absätze nimmst du einzelne <p>-Elemente und für Abstände CSS-margin, statt <br>-Tags zu stapeln.

Wie übernehme ich die Zeilenumbrüche eines Textes, ohne <br>-Tags einzufügen?

Gib dem Element im CSS white-space: pre-line. Der Browser zeigt dann jeden Zeilenumbruch im Text als neue Zeile an und fasst überzählige Leerzeichen trotzdem zusammen. Das ist praktisch für Nutzerkommentare und Text, der per JavaScript geladen wird.

Wie verhindere ich einen Zeilenumbruch in HTML?

Setz den Text in ein Element mit white-space: nowrap oder verbinde zwei Wörter mit einem geschützten Leerzeichen &nbsp;, damit sie immer in derselben Zeile bleiben.

Coddy programming languages illustration

Lerne mit Coddy zu programmieren

LOS GEHT'S