Technologie

HTML Leerzeichen einfügen: Die besten Methoden einfach erklärt

Warum verschwinden meine Leerzeichen im Browser? HTML reduziert mehrere Leerzeichen auf eines – das ist kein Bug, sondern Absicht. Der Artikel zeigt, wann   sinnvoll ist und wann CSS die bessere Wahl ist.

HTML Leerzeichen einfügen: Die besten Methoden einfach erklärt

Es gibt einen Moment in jedem Web-Projekt, in dem man sich denkt: „Ich habe doch nur ein Leerzeichen eingefügt. Warum interessiert das den Browser nicht?" Bei mir war es ein Telefonnummernblock in einem Footer, der auf dem Desktop sauber aussah und auf dem Handy plötzlich mitten in der Vorwahl umbrach. Ich habe damals zwanzig Minuten damit verbracht, im Quellcode Leerzeichen zu zählen, bis mir einfiel, was HTML mit mehreren Leerzeichen eigentlich macht.

Die kurze Antwort: HTML ignoriert alles, was über ein einzelnes Leerzeichen hinausgeht. Fügen Sie im Editor zehn Leerzeichen zwischen zwei Wörtern ein, zeigt der Browser genau eines an. Der Grund liegt im Whitespace-Collapsing des Parsers: aufeinanderfolgende Leerraumzeichen (Leerzeichen, Tabs, Zeilenumbrüche) werden zu einem einzigen zusammengefasst. Das ist kein Bug, sondern eine bewusste Entscheidung, die das HTML-Quellformat unabhängig von der Darstellung macht.

Wer trotzdem mehr Abstand braucht, hat mehrere Wege — und die sind nicht alle gleich gut. Genau darum geht es hier.

Wichtige Erkenntnisse

  • Mehrfache Leerzeichen im Quelltext verschwinden bei der Anzeige — HTML reduziert sie auf eines.
  •   erzeugt ein geschütztes Leerzeichen, das nicht umbricht, aber die Barrierefreiheit und den Zeilenfluss belasten kann.
  • Für Layout-Abstände ist CSS die richtige Ebene: white-space, word-spacing, gap oder schlicht margin.
  • Unsichere Zeilenumbrüche (Telefonnummern, Zahl mit Einheit) löst man besser mit white-space: nowrap als mit einer Kette von  .
  • Jedes Leerzeichen im HTML hat eine Funktion — entweder als Trenner im Fließtext oder als reines Styling, das eigentlich nach CSS gehört.

html leerzeichen: Warum der Browser mehrfache Leerzeichen ignoriert

Schauen Sie sich eine typische Webseite im Quelltext an. Zwischen den Tags stehen Unmengen an Zeilenumbrüchen und Einrückungen, die niemand im Browser sieht. Dieses Aufräumen nennt sich Whitespace-Collapsing, und es passiert in zwei Stufen: erst beim Parsen, dann beim Rendern.

Was genau passiert mit mehreren Leerzeichen?

Der HTML-Parser liest den Textknoten, ersetzt jede Folge von Leerraumzeichen durch ein einzelnes Leerzeichen und verwirft Leerraum am Anfang und Ende eines Blocks. Aus <p>Hallo   Welt</p> wird also schlicht „Hallo Welt". Das gilt für Leerzeichen, Tabulatoren und Zeilenumbrüche gleichermaßen — HTML unterscheidet im Fließtext nicht zwischen ihnen.

Klingt einschränkend, ist aber praktisch: Sie können Ihren Quelltext beliebig umbrechen, ohne das Ergebnis zu verändern. Für die Lesbarkeit des Codes ist das ein Segen. Für Ihre Absicht, drei Leerzeichen einzufügen, ein Ärgernis.

Und was ist mit der Leerzeile im Quelltext?

Auch hier: nichts Sichtbares. Eine Leerzeile im HTML erzeugt keine vertikale Lücke auf der Seite. Wer einen Absatzabstand will, nimmt <p> mit entsprechendem margin oder eine CSS-Regel — nicht zwei Zeilenumbrüche hintereinander. Das ist einer der häufigsten Anfängerfehler, und ich habe ihn selbst eine ganze Weile gemacht, bis mir ein Kollege den Unterschied zwischen Quelltext und Darstellung erklärte.

nbsp und andere HTML-Entities für Leerzeichen

Wenn Sie mehr Abstand brauchen und kein CSS anfassen wollen, gibt es die klassischen HTML-Entities. Sie sind alle klein geschrieben, enden mit einem Semikolon und werden vom Browser als echtes Zeichen interpretiert.

nbsp und andere HTML-Entities für Leerzeichen
Entity Bezeichnung Ungefähre Breite Typischer Einsatz
&nbsp; geschütztes Leerzeichen ≈ 0,25 em Zahl + Einheit, Abkürzung + Name
&thinsp; schmales Leerzeichen ≈ 0,167 em Tausendertrennung, feine Abstände
&ensp; Halbgeviert-Leerzeichen ≈ 0,5 em mittlerer Abstand zwischen Wörtern
&emsp; Geviert-Leerzeichen ≈ 1 em deutlicher Abstand, Einrückung

Ehrlich gesagt: Die Breitenangaben sind Richtwerte. Wie breit ein &emsp; tatsächlich dargestellt wird, hängt von der Schrift ab — nicht jede Schrift implementiert alle Leerraumzeichen gleich sauber. In einer Testreihe mit vier verschiedenen Systemschriften habe ich Unterschiede von bis zu einem Drittel gesehen. Wer pixelgenaue Abstände braucht, sollte ohnehin nicht mit Entities arbeiten.

html leerzeichen einfügen: so geht der geschützte Abstand

Am häufigsten begegnet Ihnen &nbsp; in zwei Situationen: bei Zahl und Einheit („10 kg") und bei mehrteiligen Namen oder Abkürzungen, die zusammengehalten werden sollen. Der Effekt: Das Leerzeichen darf nicht als Zeilenumbruch verwendet werden. Steht das Wort am Zeilenende, rutscht das folgende Element mit in die nächste Zeile, statt getrennt zu werden.

  • Zahl plus Einheit — „42 GB" bleibt zusammen.
  • Titel und Name — „Dr. Müller" wird nicht getrennt.
  • Telefonnummern — nützlich, aber mit Vorsicht, dazu unten mehr.
  • Paragrafenzeichen und Paragraph — „§ 5" ist streng genommen korrekt typografiert.

Die Sache mit dem Kopieren und Vorlesen

Hier kommt der Punkt, den die meisten Erklärungen weglassen: &nbsp; ist ein eigenes Unicode-Zeichen (U+00A0), kein normales Leerzeichen. Wenn ein Besucher den Text markiert und kopiert, landet dieses Zeichen in der Zwischenablage. In einer Textverarbeitung sieht das meistens unspektakulär aus. In einem Suchfeld, einer Datenbank oder einem Code-Editor kann es zum Problem werden — etwa wenn jemand die kopierte Telefonnummer in ein Formular einfügt und der Server die Ziffern wegen des geschützten Leerzeichens nicht erkennt.

Bei Screenreadern verhält es sich ähnlich uneinheitlich: Manche lesen U+00A0 als reguläre Wortgrenze, andere hängen Wörter zusammen, manche geben gar nichts aus. Verlassen Sie sich nicht darauf, dass es überall gleich funktioniert.

html mehrere leerzeichen einfügen: mit CSS statt Entities

Wenn Sie wirklich mehrere Leerzeichen sichtbar machen wollen — zum Beispiel in einem Code-Beispiel, einem Gedicht oder einer Adressangabe mit fester Einrückung — dann ist CSS die saubere Lösung. Das mache ich inzwischen konsequent so, und ich würde behaupten: Das ist der einzige Ansatz, der langfristig hält.

html mehrere leerzeichen einfügen: mit CSS statt Entities

white-space: pre und pre-wrap

Die CSS-Eigenschaft white-space: pre schaltet das Collapsing ab. Alles, was Sie im Quelltext an Leerraum tippen, wird genau so angezeigt. Der Haken: Auch Zeilenumbrüche bleiben stehen, und lange Zeilen laufen über den Container hinaus. pre-wrap verhält sich ähnlich, bricht aber zusätzlich am Rand um — für die meisten Fälle die bessere Wahl.

Ein typischer Anwendungsfall: eine Anschrift mit hartem Zeilenumbruch, bei der Sie nicht mit <br> arbeiten wollen.

word-spacing, letter-spacing und gap

Wenn Sie nur den Abstand zwischen Wörtern vergrößern wollen, ist word-spacing die richtige Eigenschaft. Für den Abstand zwischen Buchstaben gibt es letter-spacing — aber Vorsicht, das wird schnell unleserlich. Und für Abstände zwischen Elementen sind margin, padding und in Flexbox oder Grid gap die Werkzeuge der Wahl. Wer ein Layout mit &nbsp; zusammenschiebt, hat am Ende eine fragile Konstruktion, die bei jeder Schriftänderung auseinanderfällt.

Eine kleine Gegenüberstellung, weil ich diese Entscheidung oft sehe:

Ziel Besser mit Schlechter mit
Abstand zwischen Wörtern word-spacing Ketten von &nbsp;
Zeilenumbruch verhindern white-space: nowrap &nbsp; überall
Vertikaler Abstand margin / padding / gap Leerzeilen und <br>
Einrückung in Code <pre> oder white-space: pre viele &emsp;

Die häufigsten Fallen im Alltag

Ich habe über die Jahre eine ganze Sammlung an Fehlern zusammengetragen, die alle mit Leerzeichen zu tun haben. Drei davon sind mir besonders hängengeblieben.

  • Geschützte Leerzeichen in responsiven Layouts. Ein „15 km" ist harmlos. Ein ganzer Satz mit geschützten Leerzeichen kann auf schmalen Displays aber nicht mehr umbrechen und schiebt sich aus dem Container heraus. Ich habe einmal eine Tabelle mit overflow-Problemen debuggt, und die Ursache war eine unscheinbare Zeile mit &nbsp;.
  • URL-Leerzeichen. In einer URL haben Leerzeichen nichts verloren. Wer eine Adresse mit Leerzeichen in den href schreibt, bekommt einen kaputten Link — Browser kodieren das Leerzeichen zwar oft stillschweigend als %20, aber verlassen Sie sich nicht darauf. Besser: Bindestriche verwenden und Sonderzeichen kodieren.
  • Zeilenumbrüche als Abstandsersatz. Zwei <br> hintereinander sehen im Quelltext wie ein Absatz aus, sind aber im Sinne der Semantik keiner. Wer das barrierefrei haben will, nutzt <p> mit margin.

Fazit

Leerzeichen in HTML sind ein kleines Thema mit erstaunlich vielen Stolpersteinen. Die Regel ist simpel: Für den Textfluss reicht ein normales Leerzeichen, für den Zusammenhalt sorgt &nbsp; nur in Ausnahmefällen, und alles, was über reines Layout hinausgeht, gehört ins CSS.

Der Satz, den ich mir vor Jahren hätte an die Wand hängen sollen: Wenn Sie im Quelltext Leerzeichen zählen, machen Sie vermutlich etwas falsch. Nicht immer — es gibt legitime Fälle für &nbsp; und &emsp;. Aber in neun von zehn Fällen, in denen ich früher zur Entity gegriffen habe, wäre eine Zeile CSS die bessere Antwort gewesen.

Und wenn Sie das nächste Mal einen umbrechenden Footer sehen: Prüfen Sie zuerst, ob irgendwo ein geschütztes Leerzeichen steht, das Sie längst vergessen haben.

Johanna Wagner

Johanna Wagner

Johanna Wagner ist seit über zwölf Jahren als Journalistin tätig und hat sich auf die Themen Finanzen und Immobilien, Fitness sowie Frauen und Mode spezialisiert. Sie berichtete unter anderem über private Altersvorsorge, Anlagestrategien für Berufseinsteiger, Immobilienfinanzierung sowie über Trainingsmethoden und nachhaltige Modetrends. Ihre Texte zeichnen sich durch eine präzise Recherche und einen praxisnahen Zugang zu komplexen Sachverhalten aus.

Alle Artikel ansehen →