У меня есть <div>
, что я хочу быть в одной строке. Согласно W3Schools, это правило:
div.foo {
clear: both;
}
... должно означать следующее:
"Никаких плавающих элементов не разрешено ни с левой, ни с правой стороны".
Однако, если я плаваю два элемента <div>
слева и применяю правило выше к первому, второе не сдвигается с места.
С другой стороны, если я применяю "clear: left"
ко второй <div>
, он переходит к следующей строке. Это мой нормальный подход, но я не понимаю, зачем мне это делать.
Является ли описание W3Schools выше плохо сформулированным, или я что-то упускаю? Является ли правило очистки только способным перемещать элемент, к которому он применяется?
Ответ
Спасибо Майкл С. и Джон Д. за хорошие объяснения. Уоррен указал на спецификацию CSS2 и что там, где я нашел этот ответ (выделение мое):
Это свойство указывает, какие стороны блока (ов) элемента не могут быть смежными с плавающим полем ранее.
Итак: clear
влияет только на позицию элемента, к которому он применяется, относительно элементов, которые появляются перед ним.
Разочарование, что я не могу сказать, чтобы мой <div>
сделал другие divs движением вниз, но они перерывы.:)