Die CSS Eigenschaft float
platziert ein Element auf der linken oder rechten Seite seines Containers, so dass Text- und Inline-Elemente um das Element herum angeordnet werden können. Das Element wird aus dem normalen Fluss der Seite entfernt, bleibt aber dennoch ein Teil des Flusses (im Gegensatz zur absoluten Positionierung).
.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Die Quelle für dieses interaktive Beispiel ist in einem GitHub-Repository gespeichert. Wenn Sie zum Projekt der interaktiven Beispiele beitragen möchten, klonen Sie bitte https://github.com/mdn/interactive-examples und senden Sie uns eine Pull-Anfrage.
Ein Floating-Element ist ein Element, bei dem der berechnete Wert von float
nicht none
ist.
Da float
die Verwendung des Blocklayouts impliziert, ändert es in einigen Fällen den berechneten Wert der display
Werte:
Spezifizierter 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 |
other | unchanged |
HTMLElement.style
Objektsreferenzieren, unterstützen moderne Browser float
, aber in älteren Browsern müssen Sie es als cssFloat
buchstabieren, wobei Internet Explorer ab Version 8 und älter styleFloat
verwenden. Dies war eine Ausnahme von der Regel, dass der Name des DOM-Mitglieds der in camel case (Binnenmajuskel) geschriebene Name des durch Bindestriche getrennten CSS-Namens ist (aufgrund der Tatsache, dass "float" ein reserviertes Wort in JavaScript ist, was sich in der Notwendigkeit zeigt, "class" als "className" und <label>'s "for" als "htmlFor" zu maskieren).Syntax
/* Keyword values */
float: left;
float: right;
float: none;
float: inline-start;
float: inline-end;
/* Global values */
float: inherit;
float: initial;
float: unset;
The float
property is specified as a single keyword, chosen from the list of values below.
Values
none
- Standardwert. Das Element wird nicht umflossen.
left
- Das Element wird nach links gerückt und die Inhalte des umliegenden Elements (containing block) werden rechts vom Element angeordnet.
right
- Das Element wird nach rechts gerückt und die Inhalte des umliegenden Elements (containing block) werden links vom Element angeordnet.
inline-start
- Das Element muss auf der Anfangsseite seines enthaltenden Blocks fließen. Das ist die linke Seite bei
ltr
Richtungen und die rechte Seite beirtl
-Richtungen. inline-end
-
Das Element muss auf der Endseite seines enthaltenden Blocks fließen. Das ist die rechte Seite bei
ltr
Richtungen und die linke Seite beirtl
-Richtungen. inherit
- Der Wert des Elternelements wird geerbt.
- .
Formale Definition
Initialwert | none |
---|---|
Anwendbar auf | alle Elemente, hat jedoch keinen Effekt, falls der Wert von display none ist |
Vererbt | Nein |
Berechneter Wert | wie angegeben |
Animationstyp | diskret |
Formale Syntax
Beispiele
Wie fließende Elemente positioniert werden
Wie oben erwähnt, wird ein Element, wenn es fließend (floated) ist, wird es aus dem normalen Fluss des Dokuments herausgenommen (obwohl es immer noch Teil des Dokuments bleibt). Es wird nach links oder rechts verschoben, bis es die Kante seines Behälters oder eines anderen schwebenden Elements berührt.
In diesem Beispiel gibt es drei farbige Quadrate. Zwei davon sind nach links und eines nach rechts geschoben. Beachten Sie, dass das zweite "linke" Quadrat rechts vom ersten platziert wird. Weitere Quadrate würden weiter nach rechts gestapelt werden, bis sie den enthaltenden Kasten gefüllt haben, wonach sie in die nächste Zeile umbrechen würden.
Ein schwebendes Element ist mindestens so hoch wie seine höchsten verschachtelten fließenden Kinder. Wir gaben dem Elternteil die Breite von 100% (width: 100%
) und haben es fließen lassen, um sicherzustellen, dass es hoch genug ist, um seine fließenden Kinder zu umfassen, und um sicherzustellen, dass es die Breite des Elternteils einnimmt, damit wir sein benachbartes Geschwisterkind nicht überdecken müssen.
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
section {
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
Auflösung von floats
Manchmal möchten Sie vielleicht erzwingen, dass ein Element unter alle schwebenden Elemente verschoben wird. Beispielsweise möchten Sie vielleicht, dass Absätze neben den Fließkommazahlen bleiben, aber Überschriften zwingen, auf ihrer eigenen Zeile zu stehen. Siehe clear
für Beispiele.
Spezifikation
Spezifikation | Status | Kommentar |
---|---|---|
CSS Logical Properties and Values Level 1 Die Definition von 'float and clear' in dieser Spezifikation. |
Bearbeiterentwurf | Neue Werte inline-start und inline-end . |
CSS Level 2 (Revision 1) Die Definition von 'float' in dieser Spezifikation. |
Empfehlung | Keine Änderungen |
CSS Level 1 Die Definition von 'float' in dieser Spezifikation. |
Empfehlung | Ursprüngliche Deinition |
Browser Kompatibilität
BCD tables only load in the browser