Jak naprawdę działa rozliczanie CSS?

mam<div> że chcę być sam na linii. WedługW3Schools, ta reguła:

div.foo {
  clear: both;
}

... powinno to oznaczać:

„Brak elementów pływających po lewej lub prawej stronie”.

Jednakże, jeśli pływam dwa<div> pozostałe elementy i zastosuj powyższą regułę do pierwszej, druga nie poruszy się.

Z drugiej strony, jeśli złożę wniosek"clear: left" do drugiego<div>, przesuwa się w dół do następnej linii. To jest moje normalne podejście, ale nie rozumiem, dlaczego muszę to robić w ten sposób.

Czy powyższy opis W3Schools jest słabo określony, czy coś mi brakuje?Czy reguła rozliczeniowa może przesuwać tylko element, do którego jest stosowana?

Odpowiedź

Dzięki Michael S i John D za dobre wyjaśnienia. Warren wskazał naspecyfikacja CSS2i tam znalazłem tę odpowiedź (podkreślenie moje):

Ta właściwość wskazuje, które strony pola (elementów) elementu mogą nie sąsiadować zwcześniej pływające pudełko.

Więc:clear wpływa tylko na pozycję elementu, do którego jest stosowany, względem elementów, które pojawiają się przed nim, kodu.

Rozczarowujące, że nie mogę powiedzieć<div> aby przesunąć inne divy w dół, ale są to przerwy. :)

questionAnswers(5)

yourAnswerToTheQuestion