float

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die float CSS Eigenschaft platziert ein Element auf der linken oder rechten Seite seines Containers, sodass Text und Inline-Elemente darum herumfließen können. Das Element wird aus dem normalen Fluss der Seite entfernt, bleibt jedoch Teil des Flusses (im Gegensatz zur absoluten Positionierung).

Probieren Sie es aus

Ein fließendes Element ist eines, bei dem der berechnete Wert von float nicht none ist.

Da float die Verwendung des Blocklayouts impliziert, ändert es den berechneten Wert der display Werte in einigen Fällen:

Angegebener Wert Berechneter Wert
inline block
inline-block block
inline-table table
table-row block
table-row-group block
table-column block
table-column-group block
table-cell block
table-caption block
table-header-group block
table-footer-group block
inline-flex flex
inline-grid grid
andere unverändert

Hinweis: Beim Zugriff auf eine CSS-Eigenschaft in JavaScript über das Objekt HTMLElement.style werden einwortige Eigenschaftsnamen unverändert verwendet. Obwohl float ein reserviertes Schlüsselwort in JavaScript ist, wird die CSS-Eigenschaft float in modernen Browsern als float abgerufen. In älteren Browsern müssen Sie cssFloat verwenden, um auf die float-Eigenschaft zuzugreifen. (Dies ist ähnlich wie beim Zugriff auf das "class"-Attribut als "className" und das "for"-Attribut eines <label>-Elements als "htmlFor".)

Syntax

css
/* Keyword values */
float: left;
float: right;
float: none;
float: inline-start;
float: inline-end;

/* Global values */
float: inherit;
float: initial;
float: revert;
float: revert-layer;
float: unset;

Die float-Eigenschaft wird als einzelnes Schlüsselwort angegeben, das aus der unten stehenden Liste ausgewählt wird.

Werte

left

Das Element muss auf der linken Seite seines umschließenden Blocks schweben.

Das Element muss auf der rechten Seite seines umschließenden Blocks schweben.

none

Das Element darf nicht schweben.

inline-start

Das Element muss auf der Startseite seines umschließenden Blocks schweben. Das ist die linke Seite bei ltr-Skripten und die rechte Seite bei rtl-Skripten.

inline-end

Das Element muss auf der Endseite seines umschließenden Blocks schweben. Das ist die rechte Seite bei ltr-Skripten und die linke Seite bei rtl-Skripten.

Formale Definition

Initialer Wertnone
Anwendbar aufalle Elemente, hat jedoch keinen Effekt, falls der Wert von display none ist
VererbtNein
Berechneter Wertwie angegeben
Animationstypdiskret

Formale Syntax

float = 
block-start |
block-end |
inline-start |
inline-end |
snap-block |
<snap-block()> |
snap-inline |
<snap-inline()> |
left |
right |
top |
bottom |
none |
footnote

<snap-block()> =
snap-block( <length> , [ start | end | near ]? )

<snap-inline()> =
snap-inline( <length> , [ left | right | near ]? )

Beispiele

Wie schwebende Elemente positioniert werden

Wie oben erwähnt, wird ein Element, wenn es schwebt, aus dem normalen Fluss des Dokuments genommen (bleibt aber dennoch ein Teil davon). Es wird nach links oder rechts verschoben, bis es den Rand seines umschließenden Rahmens oder ein anderes schwebendes Element berührt.

In diesem Beispiel gibt es drei farbige Quadrate. Zwei schweben nach links, und eines schwebt nach rechts. Beachten Sie, dass das zweite "linke" Quadrat rechts vom ersten platziert wird. Zusätzliche Quadrate würden sich weiterhin nach rechts stapeln, bis sie den umschließenden Rahmen füllen, danach würden sie in die nächste Zeile umgebrochen.

Ein schwebendes Element ist mindestens so hoch wie seine höchsten geschachtelten schwebenden Kinder. Wir haben dem Elternelement width: 100% gegeben und es schweben lassen, um sicherzustellen, dass es hoch genug ist, um seine schwebenden Kinder zu umfassen und um sicherzustellen, dass es die Breite des Elternteils ausfüllt, damit wir nicht sein angrenzendes Geschwisterelement löschen müssen.

HTML

html
<section>
  <div class="left">1</div>
  <div class="left">2</div>
  <div class="right">3</div>
  <p>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi tristique
    sapien ac erat tincidunt, sit amet dignissim lectus vulputate. Donec id
    iaculis velit. Aliquam vel malesuada erat. Praesent non magna ac massa
    aliquet tincidunt vel in massa. Phasellus feugiat est vel leo finibus
    congue.
  </p>
</section>

CSS

css
section {
  box-sizing: border-box;
  border: 1px solid blue;
  width: 100%;
  float: left;
}

div {
  margin: 5px;
  width: 50px;
  height: 150px;
}

.left {
  float: left;
  background: pink;
}

.right {
  float: right;
  background: cyan;
}

Ergebnis

Entfernen von Floats

Manchmal möchten Sie ein Element dazu zwingen, unterhalb aller schwebenden Elemente zu erscheinen. Zum Beispiel möchten Sie möglicherweise, dass Absätze neben Floats bleiben, aber Überschriften auf ihrer eigenen Zeile stehen. Siehe clear für Beispiele.

Spezifikationen

Specification
Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification
# propdef-float
CSS Logical Properties and Values Level 1
# float-clear

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch