Was ist „Float“?
Float ist eine CSS-Positionierungseigenschaft. Um seinen Zweck und Ursprung zu verstehen, können wir uns die Printgestaltung ansehen. In einem Printlayout können Bilder so auf der Seite platziert werden, dass der Text bei Bedarf um sie herum fließt. Dies wird allgemein und treffend als „Textumbruch“ bezeichnet. Hier ist ein Beispiel dafür.

In Seitenlayoutprogrammen können die Textboxen so eingestellt werden, dass sie den Textumbruch berücksichtigen oder ignorieren. Wenn der Textumbruch ignoriert wird, können die Wörter einfach über das Bild fließen, als wäre es nicht da. Das ist der Unterschied, ob dieses Bild Teil des Flusses der Seite ist (oder nicht). Webdesign ist sehr ähnlich.

Im Webdesign werden Seitenelemente mit der CSS-floatEigenschaft angewendet, ähnlich wie Bilder im Printlayout, um die sie herumfließt. Gefeaturete Elemente *bleiben Teil des Flusses der Webseite*. Dies unterscheidet sich deutlich von Seitenelementen, die absolut positioniert sind. Absolut positionierte Seitenelemente werden *aus dem Fluss der Webseite entfernt*, ähnlich wie die Textbox im Printlayout, der gesagt wurde, den Seitenumbruch zu ignorieren. Absolut positionierte Seitenelemente beeinflussen nicht die Position anderer Elemente, und andere Elemente beeinflussen sie nicht, egal ob sie sich berühren oder nicht.
Das Setzen des Floats auf ein Element mit CSS geschieht so
#sidebar {
float: right;
}
Es gibt vier gültige Werte für die Float-Eigenschaft. Left und Right flößen Elemente in die jeweilige Richtung. None (der Standardwert) stellt sicher, dass das Element nicht floaten wird, und Inherit übernimmt den Float-Wert vom übergeordneten Element.
Wofür werden Floats verwendet?
Abgesehen vom einfachen Beispiel des Textumbruchs um Bilder herum können Floats verwendet werden, um *ganze Web-Layouts* zu erstellen.

Während Floats immer noch für Layouts verwendet werden können, haben wir heutzutage weitaus leistungsfähigere Werkzeuge zur Erstellung von Layouts auf Webseiten. Nämlich Flexbox und Grid. Floats sind immer noch nützlich zu kennen, da sie einige einzigartige Fähigkeiten besitzen, die in diesem Artikel behandelt werden.
Floats sind auch für Layouts in kleineren Instanzen hilfreich. Nehmen wir zum Beispiel diesen kleinen Bereich einer Webseite. Wenn wir Float für unser kleines Avatarbild verwenden, wird der Text in der Box bei Größenänderung des Bildes neu umfließen, um sich anzupassen.

Das gleiche Layout könnte auch mit relativer Positionierung des Containers und absoluter Positionierung des Avatars erreicht werden. Wenn man es auf diese Weise macht, wäre der Text vom Avatar unbeeinflusst und könnte sich bei Größenänderung nicht neu anordnen.

Float löschen (Clearing the Float)
Die Schwester-Eigenschaft von Float istclear. Ein Element, auf das die clear-Eigenschaft angewendet wird, rückt nicht neben den Float, wie es der Float wünscht, sondern verschiebt sich nach unten, vorbei am Float. Wiederum tut eine Illustration wahrscheinlich mehr Gutes als Worte.

Im obigen Beispiel ist die Seitenleiste rechts gefloatet und kürzer als der Hauptinhaltsbereich. Der Footer muss dann in diesen verfügbaren Platz springen, wie es der Float erfordert. Um dieses Problem zu beheben, kann der Footer gelöscht werden, um sicherzustellen, dass er unter beiden gefloateten Spalten bleibt.
#footer {
clear: both;
}

Clear hat ebenfalls vier gültige Werte. Both wird am häufigsten verwendet, was Floats aus beiden Richtungen löscht. Left und Right können verwendet werden, um nur Floats aus einer Richtung zu löschen. None ist der Standardwert, der normalerweise unnötig ist, es sei denn, um einen Clear-Wert aus einer Kaskade zu entfernen. Inherit wäre der fünfte, wird aber seltsamerweise in Internet Explorer nicht unterstützt. Nur den linken oder rechten Float zu löschen, ist zwar seltener anzutreffen, hat aber definitiv seinen Nutzen.

Der große Kollaps
Eines der verwirrenderen Dinge bei der Arbeit mit Floats ist, wie sie das Element, das sie enthält (ihr „Elternelement“), beeinflussen können. Wenn dieses Elternelement nichts als gefeaturete Elemente enthielte, würde die Höhe davon buchstäblich auf Null kollabieren. Das ist nicht immer offensichtlich, wenn das Elternelement keinen visuell wahrnehmbaren Hintergrund hat, aber es ist wichtig, sich dessen bewusst zu sein.

So kontraintuitiv das Kollabieren auch erscheinen mag, die Alternative ist schlimmer. Betrachten Sie dieses Szenario

Wenn sich das obere Blockelement automatisch erweitert hätte, um das gefeaturete Element aufzunehmen, hätten wir einen unnatürlichen Abstand im Textfluss zwischen den Absätzen, ohne praktische Möglichkeit, ihn zu beheben. Wenn dies der Fall wäre, würden wir Designer uns viel mehr über dieses Verhalten beschweren als über das Kollabieren.
Kollabieren muss fast immer behandelt werden, um seltsame Layout- und Cross-Browser-Probleme zu verhindern. Wir beheben es, indem wir den Float *nach* den gefeatureten Elementen im Container, aber *vor* dem Schließen des Containers löschen.
Techniken zum Löschen von Floats
Wenn Sie sich in einer Situation befinden, in der Sie immer wissen, welches das nachfolgende Element ist, können Sie denclear: both;Wert auf dieses Element anwenden und mit Ihrem Geschäft fortfahren. Das ist ideal, da es keine ausgefallenen Hacks und keine zusätzlichen Elemente erfordert, was es perfekt semantisch macht. Natürlich laufen die Dinge nicht immer so, und wir brauchen mehr Werkzeuge zum Löschen von Floats in unserer Werkzeugkiste.
- Die Leere-Div-Methode ist buchstäblich ein leeres Div.
<div style="clear: both;"></div>Manchmal sehen Sie ein<br>Element oder ein anderes zufälliges Element, aber Div ist am gebräuchlichsten, da es keine Browser-Standardstile hat, keine besondere Funktion besitzt und wahrscheinlich nicht generisch mit CSS gestylt wird. Diese Methode wird von semantischen Puristen verachtet, da ihre Anwesenheit keinerlei kontextuelle Bedeutung für die Seite hat und rein zur Darstellung dient. Natürlich haben sie im strengsten Sinne Recht, aber es erfüllt seinen Zweck und schadet niemandem. - Die Overflow-Methode beruht auf dem Setzen der CSS-`overflow`-Eigenschaft auf einem übergeordneten Element. Wenn diese Eigenschaft auf `auto` oder `hidden` beim übergeordneten Element gesetzt ist, dehnt sich das übergeordnete Element aus, um die Floats aufzunehmen und löscht sie effektiv für nachfolgende Elemente. Diese Methode kann wunderschön semantisch sein, da sie möglicherweise keine zusätzlichen Elemente benötigt. Wenn Sie jedoch ein neues Div hinzufügen, nur um dies anzuwenden, ist es genauso wenig semantisch wie die Methode mit dem leeren Div und weniger anpassungsfähig. Beachten Sie auch, dass die `overflow`-Eigenschaft nicht speziell zum Löschen von Floats dient. Achten Sie darauf, Inhalte nicht zu verstecken oder unerwünschte Scrollbalken auszulösen.
- Die Easy Clearing Methode verwendet einen cleveren CSS-Pseudo-Selektor (`:after`), um Floats zu löschen. Anstatt `overflow` auf dem übergeordneten Element zu setzen, weisen Sie ihm eine zusätzliche Klasse wie „clearfix“ zu. Wenden Sie dann dieses CSS an
.clearfix:after {
content: ".";
visibility: hidden;
display: block;
height: 0;
clear: both;
}
Dies wendet einen kleinen Inhalt an, der vor dem übergeordneten Element verborgen ist und den Float löscht. Das ist noch nicht die ganze Geschichte, da zusätzlicher Code benötigt wird, um ältere Browser zu unterstützen.
Unterschiedliche Szenarien erfordern unterschiedliche Float-Clearing-Methoden. Nehmen wir zum Beispiel ein Raster von Blöcken unterschiedlicher Art.

Um die ähnlichen Blöcke visuell besser zu verbinden, wollen wir eine neue Zeile starten, wann immer wir wollen, in diesem Fall, wenn sich die Farbe ändert. Wir könnten entweder die Overflow- oder die Easy-Clearing-Methode verwenden, wenn jede der Farbengruppen ein übergeordnetes Element hätte. Oder wir verwenden die Leere-Div-Methode zwischen jeder Gruppe. Drei umhüllende Divs, die vorher nicht existierten, oder drei Nach-Divs, die vorher nicht existierten. Ich überlasse Ihnen die Entscheidung, was besser ist.

Probleme mit Floats
Floats werden oft als *fragil* bezeichnet. Der Großteil dieser Fragilität stammt von IE 6 und einer Flut von Float-bezogenen Bugs. Da immer mehr Designer die Unterstützung für IE 6 einstellen, ist es Ihnen vielleicht egal, aber für die Leute, denen es wichtig ist, hier eine kurze Zusammenfassung.
- Pushdown ist ein Symptom dafür, dass ein Element innerhalb eines gefeatureten Elements *breiter als der Float selbst* ist (typischerweise ein Bild). Die meisten Browser rendern das Bild außerhalb des Floats, aber der überstehende Teil beeinflusst nicht das Layout. IE erweitert den Float, um das Bild aufzunehmen, was oft das Layout drastisch beeinflusst. Ein häufiges Beispiel ist ein Bild, das aus dem Hauptinhalt herausragt und die Seitenleiste darunter schiebt.

overflow: hidden, um überschüssiges abzuschneiden.- Doppel-Margin-Bug – Eine weitere Sache, die man bei der Arbeit mit IE 6 beachten muss, ist, dass, wenn Sie einen Rand in die gleiche Richtung wie den Float anwenden, dieser *den Rand verdoppelt*. Schnelle Lösung: Setzen Sie
display: inlineauf den Float, und machen Sie sich keine Sorgen, er bleibt ein Block-Level-Element. - Der 3-Pixel-Sprung tritt auf, wenn Text, der sich neben einem gefeatureten Element befindet, mysteriöserweise um 3 Pixel weggedrückt wird, wie ein seltsames Kraftfeld um den Float. Schnelle Lösung: Setzen Sie eine Breite oder Höhe auf den betroffenen Text.
- In IE 7 gibt es den Bottom Margin Bug, bei dem, wenn ein gefeaturetes Elternelement gefeaturete Kinder hat, der untere Rand dieser Kinder vom Elternelement ignoriert wird. Schnelle Lösung: Verwenden Sie stattdessen Padding unten am Elternelement.
Alternativen
Wenn Sie Text um Bilder fließen lassen müssen, gibt es wirklich keine Alternativen zu Float. Apropos, schauen Sie sich diese ziemlich clevere Technik an, um Text um unregelmäßige Formen fließen zu lassen. Aber für Seitenlayouts gibt es definitiv Alternativen. Eric Sol hier bei A List Apart hat einen Artikel über Faux Absolute Positioning, eine sehr interessante Technik, die in vielerlei Hinsicht die Flexibilität von Floats mit der Stärke von absoluter Positionierung kombiniert. CSS3 hat das Template Layout Module, das, wenn es weit verbreitet ist, die bevorzugte Technik für Seitenlayouts sein wird.
Video
Ich habe vor einiger Zeit ein Screencast erstellt, in dem viele dieser Float-Konzepte erklärt werden.
http://www.quirksmode.org/css/clearing.html
Das benutze ich zum Löschen meiner Floats. Super Sache.
Zitiert von der Seite, die Sie oben verlinkt haben
„# Einige Browser benötigen auch eine Breite oder Höhe für das Container-Div.“
Was machen Sie, wenn der Inhalt dynamisch ist? Ärgerlich. Das wird nicht funktionieren…
Großartige Arbeit damit! Sie sollten Dinge öfter in diesem Stil erklären, es ist wirklich erfrischend und leicht zu verfolgen! :)
Zustimmung. Sie haben mich mit diesem Artikel wirklich beeindruckt, Chris. Die von Ihnen gewählten Beispiele sind einfach, leicht verständlich und schön anzusehen.
Sie sollten mit Artikeln wie diesen weitermachen, Chris! Viel Lob!
Hallo Chris, nur eine Frage zu dem, wo Sie sagen
Ich habe das immer gelöst, indem ich das Elternelement ebenfalls gefeaturet habe, ist das schlechte Praxis, auch wenn es dasselbe bewirkt? Außerdem fügt das keine nicht-semantische Markup hinzu.
Ich frage mich nur, was Sie dazu sagen?
Das Floaten des Elternelements ist die einfachste und sauberste Methode, um mit dem Kollaps umzugehen. Ein gefeaturetes Div mit einer bestimmten Breite dehnt sich vertikal aus, um seine Kindelemente aufzunehmen.
Wenn alle Kinder gefeaturet sind, setzen Sie `overflow: auto` für das Elternelement und sehen Sie den Effekt. Es funktioniert bei den meisten modernen Browsern.
@Epic Alex: Aber was, wenn Sie nicht möchten, dass das Elternelement gefeaturet wird? Das könnte eigene Layout-Probleme verursachen. Wenn Sie die clearfix-Methode oder die `overflow: auto;`-Methode verwenden, können Sie auch den Float löschen und die Größe des Elternelements korrigieren, ohne zusätzliche Markup hinzuzufügen.
Das ist mein „Ah-Ha!“-Moment… haha.
Wow, das ist super. Ich denke, die Art und Weise, wie Sie die Informationen präsentiert haben, ist großartig, ich würde gerne mehr davon sehen. Nette Lektüre.
Chris,
Ich habe in den letzten Tagen einen sehr relevanten Link bezüglich clearfix entdeckt. Ich schlage vor, Sie schauen ihn sich an und wenden seine Empfehlungen vielleicht sogar auf diesen Artikel an
http://perishablepress.com/press/2008/02/05/lessons-learned-concerning-the-clearfix-css-hack/
Brent
Ich denke, das ist die umfassendste Erklärung von Floats, die ich je gesehen habe, sehr gut
Jetzt nenne ich das wirklich einen großartigen Artikel, der alles erklärt, sogar bis ins kleinste Detail.
Machen Sie weiter so.
Ich kann nicht glauben, dass ich all die Jahre eine völlig andere Vorstellung davon hatte, wie „clear“ funktioniert und nie herausfinden konnte, warum es manchmal funktionierte, aber manchmal nicht. Jetzt ist alles perfekt klar (schlechter Witz). Vielen Dank für diesen Artikel.
Leider habe ich das vor Jahren auf die harte Tour gelernt! Guter Artikel, danke!
Schöne Zusammenfassung, Chris!
Würde gerne mehr davon in Zukunft sehen..
Das ist eigentlich das korrekte Verhalten gemäß den Spezifikationen, also ist es keine Frage, dass der Browser es falsch macht. Hier ist ein Artikel, der erklärt, warum das sinnvoll ist.
Anstatt weitere Divs zu meinem Markup hinzuzufügen, verwende ich einfach <br />innerhalb meines Elternelements und verwende dann
in meinem CSS, um das Elternelement zu löschen und sich auf die Höhe der internen Floats auszudehnen. Es hat den gleichen Effekt mit weniger Markup und weniger Verwirrung mit Divs.
Guter Artikel. Floats sind großartig, aber sie können manchmal ärgerlich sein.
Der Artikel über faux absolute positioning, den Sie erwähnen, ist, wie Sie sagten, interessant. Ich habe damit gespielt und es wirklich gemocht. Zumindest bis ich dieses Argument gegen faux absolute positioning gelesen habe.
Fantastischer, fantastischer, fantastischer Post. Ich denke, wenn es eine Sache gibt, die ich am meisten benutze, dann ist es „float“. Ich wusste tatsächlich nicht von einigen dieser Bugs. Danke!
Ein ausgezeichneter Artikel, wirklich. Ich habe ihn gerne gelesen.
Grüße aus Belgien!
Danke für den Ping, Chris – ich habe meinen Clearfix-Artikel aktualisiert, um die Firefox-3-Korrektur aus Ihrem Beitrag widerzuspiegeln. Jetzt muss ich noch eine Million verschiedene Stylesheets aktualisieren!
Übrigens bin ich ziemlich sicher, dass die „offizielle“ Abkürzung für Firefox „Fx“ und nicht „FF“ ist, was auch immer es wert ist.
Gerade als ich dachte, ich wüsste viel über Floats… danke Chris!
Etwas OT
Grundsätzlich glaube ich nicht, dass die Eigenschaft „float“ als Layout-Eigenschaft verwendet werden soll,
sondern vielleicht als Typografie-Eigenschaft – sie stammt von der „align“-Eigenschaft eines IMG-Tags.
Es gibt keine solche Eigenschaft, die spezifisch für Layouts in CSS2.1 gedacht ist, Sie sagen „position“? Nun, Position hat einfach so wenig Kontrolle.
CSS2.1 ist immer noch im Grunde eine Sprachdekoration, genau wie CSS1, komplexes Layout ist weit außerhalb ihres Bereichs. Jede CSS-Technik, die wir jetzt für Layouts verwenden, ist eine Art Hack, einschließlich Float und Position. Was ist mit Tabellenlayouts? Ja, es ist offensichtlich auch ein Hack.
Also, wir hacken hier alles.
overflow: hidden; funktioniert genau wie overflow: auto;; es löscht den Float und wenn Sie eine Breite angeben, stellt es sicher, dass das Elternelement alles ausblendet, was über die ursprüngliche Breite hinausgeht. Mit angegebener Breite können Sie ein paar IE6/7-Bugs beheben, bei denen der untere Rand des letzten Elements nicht funktioniert.
Generell und ich denke, alle hier wissen das. Die Angabe einer Breite für Elemente löst etwa 70% der IE-Rendering-Bugs.
@Jeff Starr, sie haben es eine Weile auf ihrer Website verwendet, ich kann es dort nicht mehr finden.
Dies ist ein Link zu den Neuigkeiten bei Fx-Unterstützung für CSS http://tinyurl.com/yuxlbs
Nützlicher Artikel zum Speichern, habe auch ein paar gute Tipps mitgenommen!
Ich möchte nicht unhöflich klingen, aber Ihr Artikel erschien mir ein wenig verwirrend, nicht „klar“ genug, würde ich sagen:)
Hier ist ein früherer Artikel, den ich gelesen habe, der dieselben Punkte auf eine viel einfachere und vollständigere Weise erklärt.
http://kilianvalkhof.com/2008/css-xhtml/understanding-css-positioning-part-1/
http://kilianvalkhof.com/2008/css-xhtml/understanding-css-positioning-part-2/
@Fouad Masoud
http://www.mozilla.com/en-US/firefox/releases/1.5.html#FAQ
Siehe #8..
Ich denke, das ist eine sehr detaillierte Abdeckung der Float-Nutzung! Ich glaube, Sie können nie genug Wrapper haben, um sicherzustellen, dass es keine Überraschungen von Ihren gefeatureten Elementen gibt.
Vielen Dank für einen gut geschriebenen Artikel. Er hat wirklich geholfen, einige meiner Verwirrungen bezüglich Floats zu beseitigen.
Danke, Kumpel – sehr hilfreich. Tolle Seite auch!
Ich kann mir nichts vorstellen, das mir mehr Sorgen bereitet hat als Floats. Wenn sie funktionieren, *funktionieren* sie, aber bis zu diesem Punkt zu gelangen ist voller allerlei Tricks. Dies ist ein großartiger Leitfaden, den ich definitiv bookmarken werde, wenn ich das nächste Mal ein Float-Problem lösen muss.
Das ist ein *wirklich großartiger* Artikel. Eigentlich ist es die beste Information, über die ich gestolpert bin, seit ich gelernt habe, wie man *Favlets* benutzt und als ich mit
http://browsershots.org/ in Kontakt kam... Schauen Sie sich diese Phänomene an, wenn Sie sie noch nicht kennen =).
Sie sind fast so großartig wie Ihre Seite.. ^^
Danke für diesen Beitrag… Sie haben mir geholfen, mir nicht mehr die Haare auszureißen!!
Das war wirklich nützlich! Ich habe auch das Video gesehen :P
Toller Artikel, es ist erstaunlich, wie viele kleine Eigenheiten es zwischen Browsern gibt. Ich habe viel Zeit damit verbracht, kleine CSS-Probleme zu beheben!
Toller Beitrag, fasst es so ziemlich alles zusammen! :)
Guter Artikel, aber ich ziehe es immer noch vor, Floats um jeden Preis zu vermeiden. Mein Blog ist mit inline-block aufgebaut und floatfrei. Es ist keine perfekte Alternative, aber ich bevorzuge sie jederzeit gegenüber Floats.
Schauen Sie sich meinen Webdev-Bereich an, wie man inline-block verwendet.
Ihre Leere-Div-Methode sollte etwas aufgeräumt werden;
Erstens sollte sie so geschrieben werden
Und dann das CSS;
.clear { width: 0; height: 0; overflow: hidden; clear: both; }
Das schneidet Inline-Styles und auch ein leeres Div aus (der Platz muss dort sein).
mein Denken über CSS wird mit jedem 5. Artikel neu geformt. Was würde ich nicht geben, um eine halbe Stunde mit Ihnen zu bekommen. Das CSS richtig über ein paar gute belgische Biere hinbekommen.
In der Tat, ein schöner Artikel. Ich habe ihn auch bookmarkt.
Süßer Artikel. Ich genieße es immer, wenn sich Leute die Zeit nehmen, tatsächlich zu erklären, warum und wie etwas funktioniert.
Wenn ich verstehe, wie und warum etwas zuerst funktioniert, bin ich eher bereit, es richtig anzuwenden und schneller besseres CSS mit weniger Fehlern und Hacks zu produzieren.
Mehr Tutorials wie dieser wären großartig – wie zum Beispiel eine Erklärung von Tabellen – all ihre Teile (thead, summary, tbody, etc.) und Verhaltensweisen.
Alter, das ist ein SEHR schöner Artikel! Sauber und vollständig.
Toller Artikel, mit sehr schönen Beispielen. Habe ihn zu meinem Delicious hinzugefügt, danke!
Liebe den Titel, ich habe gekichert, ob beabsichtigt oder nicht, haha
Ich meinte den „Untertitel“, „Was ist Float?“
Toller Artikel wie immer. :D
PS, Chris. Ich denke, Sie müssen diese Social-Bookmarking-Buttons wieder hinzufügen. (Ich habe diesen ausgegraben >>> http://digg.com/d1w748 )
das ist es, was ich suche… Float hat mir Kopfzerbrechen bereitet, aber jetzt weiß ich wie… danke Chris
Deshalb besuche ich diese Seite jeden Tag und deshalb bin ich dank Artikeln wie diesem ein besserer Designer. Toller Beitrag für Anfängerdesigner, schätze die ganze Arbeit, die Sie auf dieser Seite leisten.
Deja vu?
Trotzdem ist es immer noch ein toller Beitrag > bookmarkt und gegraben.
Ausgezeichnet! Das ist, was ich suche. Vielen Dank!
Danke, danke, danke… das ist ein *extrem hilfreicher* Artikel.
Danke Chris, ein ausgezeichneter Artikel zu einem Thema, das irgendwann jedem Probleme bereiten kann.
Vielen Dank für diesen Beitrag. Sie haben hier mehrere kleine Bereiche abgedeckt, von denen ich zwar einige kannte, sie aber vielleicht nicht so gut verstanden habe, wie ich sollte.
Ihre Erklärungen sind klar und haben mein Verständnis verbessert.
Prost.
Wie immer super, Chris, und die Illustrationen gefallen mir sehr gut. Gute Arbeit! :D
Das ist ein Muss-Artikel. Ich hoffe, ich erinnere mich daran, wenn meine Augen nach stundenlangem Herumspielen mit Firebug kreisen.
Gut gemacht!
Besser als die Video-Tutorials!
Großartige Zusammenfassung der Float-Eigenschaften, Chris. Ich habe im Allgemeinen damit experimentiert, wenn ich mit WordPress oder meinen neuesten Layouts gearbeitet habe. Das Konzept ist recht einfach und kann Ihnen viel Arbeit ersparen, anstatt ständig Elemente zu positionieren.
Die "Empty Div"-Methode ist meine bevorzugte Methode, aber manchmal... nur manchmal besteht sie den W3-Validator nicht.
Wow.. Tolle Informationsquelle, sehr detailliert und sehr informativ, nicht nur für Neulinge im Umgang mit Floats, sondern auch für Experten wie mich, die die Grundlagen wieder auffrischen müssen. Fantastisch
Schönes Tutorial. Obwohl ich die meiste Zeit wusste, habe ich eine neue Technik gelernt, nämlich `overflow: auto` oder `hidden`. Ich habe normalerweise entweder die "empty div"- oder die "clearfix:after"-Methode verwendet.
Danke, dass Sie sich die Zeit genommen haben, dies so aufzuschreiben. Die Klarheit macht es herausragend.
Dieser Artikel wurde auf favSHARE.net geteilt.
Was es wert ist, immer wenn ich einen „leeren“ Clearing-Div verwende, lege ich einen Kommentar (wie <!– ie sucks –>) zwischen die öffnenden und schließenden Div-Tags. Ich vergesse die Einzelheiten, aber ein komplett leerer Div verursachte ein Problem mit einer Version von IE.
Es gibt eine sehr einfache Lösung für all das. Verwenden Sie "display:table" für das übergeordnete DIV und dann "display:table-cell" für alle untergeordneten DIVs. Leider unterstützen dies nur Firefox, Safari und IE8. Sobald es für alle Browser verfügbar ist, wird Float für die Formatierung von Seitenbereichen verschwinden. Floats eignen sich am besten für Inline-Elemente.
Episch! Wie immer.
Brillant… wo waren Sie vor ein paar Jahren, als ich das wissen musste? :)
Obwohl ich CSS schon seit Jahren benutze, werfen Ihre Blogbeiträge immer neues Licht auf und decken Dinge auf, die ich einfach nicht wusste.
Beeindruckende Erklärung!
Danke Chris!
Haben Sie jemals Probleme mit Links gehabt, die innerhalb von gefloateten Div-Containern springen?
Toller Beitrag! Ich habe mehrere Artikel und Bücher gelesen, die angeblich Floats und ihre Verwendung „erklären“, aber dieser übertrifft sie ALLE.
Auch die sauberen, leicht verständlichen Bilder haben mir sehr gut gefallen. Sie helfen wirklich, ein Gefühl dafür zu bekommen, wie die Floats im Kontext funktionieren.
Vielen Dank für diesen unglaublich nützlichen Beitrag!
Danke, es ist sehr hilfreich, einschließlich der Bilder in Ihren Beispielen, um eine klare Vorstellung davon zu bekommen, was passieren soll.
Mann, du bist der Beste! Grüße und danke!
Gut gemacht.
Ich bin ein Webdesigner-Anfänger. Wir haben viele Probleme mit der Float-Eigenschaft in der CSS-Codierung. Wenn wir einem Container einen Rand geben, macht IE einen doppelten Rand für diesen Container. Um dieses Problem zu beheben, verwende ich `_margin` nur für IE. Jetzt sind unsere Kopfschmerzen vorbei. Ihre Beispiele sind einfach und unkompliziert.
Schön………………..
Toller Artikel, Chris. Ich wünschte nur, es gäbe das, als ich anfing! Mach weiter so.
Ausgezeichneter Artikel, ich habe Divs in den meisten Fällen mit Float positioniert, da dies im Gegensatz zur Verwendung von Position hilfreich war.
Einfach genial, danke Chris
Danke! Das hat mir geholfen, ein Problem in IE6 zu beheben! Yay! Du bist mein Held!
Vielen vielen Dankhhhhhhhhhh
Hervorragende Tricks………..
:)
Ausgezeichneter Artikel. Ich hatte einige Probleme mit dem Float, aber nachdem ich diesen großartigen Artikel gelesen hatte, sind alle verschwunden.
Toller Artikel, ich habe einen Link dazu auf meinem Blog gepostet, ich habe ständig mit dem Kollaps-Problem zu kämpfen.
Die beste Float-Abdeckung, die ich bisher gesehen habe.
Toller Artikel. Floats waren einer der frustrierendsten Teile bei der Gestaltung meiner Website. Danke, dass Sie das geklärt haben.
Ich liebe den Stil und die Diagramme dieses Artikels. Bitte verwenden Sie dieses Format für weitere Artikel.
Hallo Chris,
Danke für diesen Beitrag, ich verweise mich oft auf Sie, um Antworten auf meine CSS-Fragen zu finden.
Frage: Sie erwähnten "Float-Elemente bleiben Teil des Flusses der Webseite." Aber werden sie nicht aus dem Dokumentfluss entfernt? Ist das nicht der Grund, warum wir einen clearfix auf übergeordnete Container anwenden müssen, damit sie nicht kollabieren?
Kollaps ist ein Problem, aber die gefloateten Elemente werden technisch nicht aus dem Fluss entfernt. Stellen Sie sich vor, wenn ein gefloatetes Element 100 Pixel breit wäre und Text darum herumfließen würde, dann würde es 200 Pixel breit werden, der Text würde darüber hinweg fließen und darum herum. Beeinflusst immer noch andere Elemente == ist immer noch im Fluss.
**„Float-Elemente bleiben Teil des Flusses der Webseite.“
**
Ist diese Information wahr?
Hallo Chris,
Wenn Sie einem Div keine Höhe und Breite geben und darin gefloatete Kindelemente haben und möchten, dass das übergeordnete Div die Höhe der Kindelemente einnimmt. Was wäre der Ansatz? Ich weiß, wir können dem übergeordneten Element `float: left` geben oder `overflow: hidden` für das übergeordnete Element einstellen.
Noch eine Frage, Chris,
Ich habe auch gelesen, dass gefloatete Elemente aus dem HTML-Fluss entfernt werden.
„Stellen Sie sich vor, wenn ein gefloatetes Element 100 Pixel breit wäre und Text darum herumfließen würde, dann würde es 200 Pixel breit werden, der Text würde darüber hinweg fließen und darum herum. Beeinflusst immer noch andere Elemente == ist immer noch im Fluss.“
Was bedeutet das?
Wenn Sie eine Tabelle mit großer Breite in den Hauptinhalt einfügen, haben wir ein Problem: Die Tabelle sprengt die Breite des Divs. Weiß jemand, wie man das löst? Mit einer Tabelle großer Breite, ohne `div's overflow`?
Nachdem ich ihn gelesen habe, habe ich das Gefühl, dass ich Danke sagen muss! Ausgezeichneter Artikel.
Nur eine Gruppe von idiotischen Ingenieuren konnte das zentrale Element aus dem Webdesign entfernen. Nur dumme Ingenieure hätten das Leben aller so verdammt schwer gemacht.