float & clear

Zuletzt aktualisiert am 15. Februar 2026

float nimmt ein Element aus dem normalen Dokumentfluss und schiebt es nach links oder rechts. Der umgebende Textinhalt fließt dann um das Element herum. clear hebt den Float-Effekt auf und verhindert, dass ein Element neben einem gefloateten Element positioniert wird. Früher wurden Floats für komplette Seitenlayouts verwendet, aber heute sind Flexbox und Grid dafür die bessere Wahl. Der primäre Anwendungsfall für float ist der Textumfluss um Bilder.

Syntax
float: none | left | right | inline-start | inline-end
Initialwert
none
Vererbt
Nein
Animierbar
Nein

Grundlagen

Wenn du ein Element mit float: left oder float: right versiehst, passiert Folgendes: Das Element wird aus dem normalen Fluss herausgenommen und an den linken bzw. rechten Rand seines Containers geschoben. Inline-Inhalte (Text, Bilder) fließen um das gefloatete Element herum. Block-Elemente verhalten sich so, als wäre das Float-Element nicht vorhanden.

Das größte Problem mit Floats: Der Container “sieht” seine gefloateten Kinder nicht und kollabiert auf die Höhe der nicht-gefloateten Inhalte. Früher hat man das mit dem sogenannten “clearfix-Hack” gelöst (ein Pseudo-Element mit clear: both). Heute gibt es dafür display: flow-root, das einen neuen Block Formatting Context erzeugt und den Container seine Kinder korrekt umschließen lässt.

Für Layouts solltest du Flexbox oder Grid verwenden. float ist heute nur noch für den klassischen Textumfluss relevant, z.B. wenn ein Bild in einem Fließtext stehen soll.

Syntax & Werte

float

Wert Beschreibung Beispiel
none Element wird nicht gefloatet und bleibt im normalen Dokumentfluss. (Standard) float: none
left Element wird an den linken Rand geschoben. Inhalte fließen rechts herum. float: left
right Element wird an den rechten Rand geschoben. Inhalte fließen links herum. float: right
inline-start Element wird an den logischen Startrand geschoben (in LTR: links). float: inline-start
inline-end Element wird an den logischen Endrand geschoben (in LTR: rechts). float: inline-end

clear

Wert Beschreibung Beispiel
none Keine Einschränkung. Element kann neben Floats stehen. (Standard) clear: none
left Element wird unter vorherige left-Floats verschoben. clear: left
right Element wird unter vorherige right-Floats verschoben. clear: right
both Element wird unter alle vorherigen Floats verschoben. clear: both
inline-start Element wird unter Floats am logischen Startrand verschoben. clear: inline-start
inline-end Element wird unter Floats am logischen Endrand verschoben. clear: inline-end

Beispiele

Bild mit Textumfluss (float: left)

Der klassische Anwendungsfall: Ein Bild steht links, der Text fließt rechts daneben.

float: left mit Textumfluss
.image {
  float: left;
  width: 100px;
  margin: 0 12px 8px 0; /* Abstand zum Text */
}

/* Text fließt automatisch um das Bild herum */

Bild rechts mit Textumfluss (float: right)

Das gleiche Prinzip, aber das Bild steht rechts.

float: right mit Textumfluss
.image {
  float: right;
  width: 100px;
  margin: 0 0 8px 12px; /* Abstand zum Text (links) */
}

clear: both

Mit clear: both erzwingst du, dass ein Element unterhalb aller vorherigen Floats beginnt.

clear: both
.left  { float: left; }
.right { float: right; }

.below-floats {
  clear: both; /* Beginnt unter allen Floats */
}

display: flow-root statt clearfix-Hack

Das häufigste Float-Problem: Der Container kollabiert, weil er seine gefloateten Kinder nicht umschließt. display: flow-root löst das elegant und modern.

Container-Kollaps beheben
/* Problem: Container kollabiert */
.broken {
  border: 2px solid red;
  /* Float-Kind ragt heraus */
}

/* Lösung: flow-root erzeugt neuen Formatting Context */
.fixed {
  display: flow-root;
  border: 2px solid green;
  /* Float-Kind wird korrekt umschlossen */
}

/* Veralteter clearfix-Hack (nicht mehr nötig):
.clearfix::after {
  content: "";
  display: block;
  clear: both;
} */

Barrierefreiheit

Floats verschieben Elemente visuell, aber die Lesereihenfolge für Screenreader folgt weiterhin der DOM-Reihenfolge. Das ist weniger problematisch als bei Grid oder Flexbox, kann aber bei komplexeren Float-Layouts zu verwirrenden Lesereihenfolgen führen.

Beispiel: Du hast ein float: left Bild und einen langen Text. Visuell fließt der Text rechts neben dem Bild und dann darunter weiter. Ein Screenreader liest aber: Bild, dann den gesamten Text in einem Durchgang. Wenn der Text-Absatz nach dem Bild beginnt, ist die Reihenfolge natürlich. Wenn das Bild aber mitten im Text steht, kann es zu unlogischen Sprüngen kommen.

Moderne Alternativen sind besser: Flexbox und Grid geben dir mehr Kontrolle über die Lesereihenfolge, auch wenn du dabei ebenfalls auf die DOM-Reihenfolge achten musst. Floats sind heute hauptsächlich für den klassischen Bild-Text-Umfluss relevant, wo die Barrierefreiheit meist unproblematisch ist.

Häufige Fehler

  • Floats für Layouts verwenden: Floats waren nie für Seitenlayouts gedacht, wurden aber jahrelang dafür missbraucht. Für Layouts solltest du heute Flexbox oder Grid verwenden. Floats sind nur noch für den Textumfluss um Bilder sinnvoll.
  • Container kollabiert (Float-Kinder werden nicht umschlossen): Ein Container hat keine Ahnung von seinen gefloateten Kindern und kollabiert auf die Höhe der nicht-gefloateten Inhalte. Verwende display: flow-root auf dem Container, um das Problem zu lösen.
  • clear vergessen nach einem Float: Wenn nach einem Float kein clear kommt, fließen nachfolgende Elemente weiterhin neben dem Float. Verwende clear: both auf dem nächsten Element, das die volle Breite benötigt.
  • Float und Margin zusammen verwenden: Gefloatete Elemente können mit vertikalen Margins unerwartete Ergebnisse liefern. Margins kollabieren nicht mit Float-Elementen, was zu doppelten Abständen führen kann. Setze Margins bewusst und teste das Ergebnis.
  • float auf Flex- oder Grid-Items: float hat keine Wirkung auf Flex- oder Grid-Items. Wenn ein Element innerhalb eines Flex- oder Grid-Containers steht, wird float ignoriert. Verwende stattdessen die Ausrichtungs-Eigenschaften von Flexbox oder Grid.

Browser-Kompatibilität

float und clear werden seit Jahrzehnten von allen Browsern unterstützt. Die logischen Werte inline-start und inline-end haben seit 2023 breiten Support.

ClientUnterstützungHinweise
ChromeKomplett
FirefoxKomplett
SafariKomplett
EdgeKomplett
OperaKomplett

Email-Kompatibilität

float wird in HTML-Emails überraschend gut unterstützt, da es eine ältere CSS-Eigenschaft ist. Für einfache Text-Bild-Layouts ist es eine zuverlässige Option.

ClientUnterstützungHinweise
Apple MailKomplett
GmailTeilweisefloat: left und float: right werden unterstützt. clear funktioniert teilweise
OutlookTeilweiseGrundlegendes Float funktioniert, aber komplexe Float-Layouts können brechen
ThunderbirdKomplett
Yahoo MailTeilweisefloat wird grundlegend unterstützt

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.