Como a limpeza de CSS realmente funciona?
eu tenho um<div>
que eu quero estar em uma linha sozinha. De acordo comW3Schools, Esta regra:
div.foo {
clear: both;
}
... deve significar o seguinte:
"Nenhum elemento flutuante é permitido no lado esquerdo ou no lado direito."
No entanto, se eu flutuar dois<div>
elementos restantes e aplique a regra acima ao primeiro, o segundo não se move.
Por outro lado, se eu aplicar"clear: left"
para o segundo<div>
, ele desce para a próxima linha. Essa é a minha abordagem normal, mas não entendo por que tenho que fazer assim.
A descrição do W3Schools acima está mal estabelecida ou estou faltando alguma coisa?Uma regra de compensação é capaz de mover apenas o elemento ao qual é aplicado?
RespondaObrigado Michael S e John D pelas boas explicações. Warren apontou paraa especificação CSS2, e foi aí que encontrei esta resposta (ênfase minha):
Essa propriedade indica quais lados da (s) caixa (s) de um elemento podem não estar adjacentes a umamais cedo caixa flutuante.
Assim:clear
afeta apenas a posição do elemento ao qual é aplicado, em relação aos elementos que aparecem antes do código.
Decepcionante que eu não posso dizer ao meu<div>
fazer outros divs descerem, mas são os intervalos. :)