• Почему нельзя задавать float:left всем блокам?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Это правда.

    Расчёт блоков, выпадающих из нормального потока, но при этом влияющих на последующие, очень сложен и способен серьёзно нагрузить старые браузеры, вплоть до подтормаживания и кратковременного подвисания. Современные с такой проблемой сталкиваются в меньшей степени, но также потратят немало времени на reflow. А ресурсы ой как ещё пригодятся на другие задачи.

    Вот вам пример сложности расположения плавающих элементов.

    Вёрстка с большим количеством плавающих блоков крайне зависима от совпадения их размеров, появления блоков с clearence, значения overflow у предков и ряда других факторов, что делает её применимой только в очень жёстко ограниченных условиях.

    С появлением flex использовать нестабильные плавающие блоки для построения колонок становится неразумным решением. Тем более, что flex не поддерживается только IE9 и ниже. Ну уж а inline-block гарантированно работает везде.

    Кстати, особенно смешно наблюдать использование float для построения горизонтальных лент с расчётом с помощью JS итоговой ширины. А вот для обтекания текстом плавающие блоки могут и должны использоваться. Стоп. Так они же для этого и были придуманы:)
    Ответ написан