Кратко
СкопированоСвойство помогает «обтекать» блоки текстом.
Пример
Скопировано.block__img { float: right;}
.block__img { float: right; }
Как понять
СкопированоИногда при вёрстке блока нужно, чтобы текст рядом с картинкой занимал всё оставшееся место, а после картинки располагался на всю ширину блока. Для таких ситуаций и создан float
. Элемент, для которого указано это свойство, частично выходит из потока: все элементы блочного контекста, прописанные в коде после элемента с float
, занимают его место, а элементы строчного контекста — «обтекают» его.
Как пишется
Скопировано.element { float: left;}
.element { float: left; }
В файле стилей пишем селектор элемента, который будем «обтекать», и указываем одно из трёх значений свойства:
left
— элемент встанет у левого края родительского блока.right
— элемент встанет у правого края родительского блока.none
— значение по умолчанию, элемент останется в потоке.
Если мы задаём какому-то элементу свойство float
и пишем к нему, скажем, абзац текста, а ниже добавляем ещё один абзац, который по задумке должен быть независимым, то второй абзац всё ещё может «обтекать» элемент с float
. Поэтому нам нужно прекратить влияние этого свойства, чтобы вернуться к обычному потоку документа. Для этого можно использовать так называемый «clearfix». После элемента, на котором мы хотим прекратить обтекание, можно вставить пустой элемент, обычно с классом clearfix
, и прописать свойство clear
:
.clearfix { clear: both;}
.clearfix { clear: both; }
Также можно не вставлять отдельный элемент в разметку, а обойтись псевдоэлементом :
— этот вариант предпочтительнее.
Несколько лет назад для похожей цели появилось значение flow
для свойства display
— оно как бы изолирует обтекание. Достаточно применить его к блоку, внутри которого есть элемент с float
— и влияние float
не будет распространяться вне этого блока. А относительно соседей он будет вести себя как обычный блочный элемент со статичным позиционированием.
Также для подобной изоляции можно указать блоку свойство overflow
. Отличие состоит в том, что flow
позволяет использовать свойство overflow
.
Подсказки
Скопировано💡 Применяя float
к элементу, мы неявно делаем его блочным.