Wie funktioniert CSS Clearing wirklich?

Ich habe ein<div> dass ich alleine in einer Leitung sein will. GemäßW3Schools, diese Regel:

div.foo {
  clear: both;
}

... sollte folgendes bedeuten:

Msgstr "Keine schwebenden Elemente auf der linken oder rechten Seite erlaubt."

Wenn ich jedoch zwei schwebe<div> Elemente links, und wenden Sie die obige Regel auf die erste an, die zweite rührt sich nicht.

Andererseits, wenn ich mich bewerbe"clear: left" zum zweiten<div>, geht es runter in die nächste Zeile. Dies ist meine normale Vorgehensweise, aber ich verstehe nicht, warum ich das so machen muss.

Ist die obige Beschreibung von W3Schools falsch angegeben oder fehlt mir etwas?Kann eine Clearing-Regel nur das Element verschieben, auf das sie angewendet wird?

Antworten

Vielen Dank an Michael S und John D für die guten Erklärungen. Warren zeigte aufdie CSS2-Spezifikation, und hier habe ich diese Antwort gefunden (Hervorhebung von mir):

Diese Eigenschaft gibt an, welche Seiten der Kästchen eines Elements möglicherweise nicht an eine angrenztvorhin schwimmende Box.

Damit:clear Betrifft nur die Position des Elements, auf das es angewendet wird, relativ zu Elementen, die vor dem Code angezeigt werden.

Enttäuschend, dass ich meine nicht sagen kann<div> andere Divs nach unten bewegen, aber sie sind die Pausen. :)

Antworten auf die Frage(5)

Ihre Antwort auf die Frage