Больше всего в своей работе с вёрсткой я всегда не любил свойство float
. Спустя годы, верстая достаточно непростой макет обнаружил, что использовал float
всего один раз, потом подумал и убрал его.
Почему не люблю это свойство?
Есть несколько причин. Например, для очистки всегда нужно использовать некий элемент со свойством clear
, из-за чего код засорялся. Особенно страшно было на это смотреть, когда float
подвергался список ul > li
. Приходилось или добавлять в конец ещё один li
с особым классом, или того страшнее span
или div
между последним li
и закрывающим тегом ul
(хотелось отрубить себе руку).
Ну и кто не сталкивался с неадекватным (как минимум по логике верстальщика) поведением браузера, который при нормальной, казалось бы, вёрстке шаблона в несколько колонок просто разрывал его и тогда, для лечения, призывался жуткий и прекрасный в своей жуткости .clearfix
. Работу которого способны объяснить только шаманы 90лвл.
Собственно моё решение:
ul { display: block; font-size: 0; }
ul li { display: inline-block; }
Вот такой малюсенький трюк. Позицией, по правому/левому краю и по центру, очень легко управлять через text-align
, поставить элементы в ровный ряд через vertical-align: top
. При этом функцию clear выполняет сам родитель, который на отлично заканчивается с самым последним элементом.
Даже если речь идёт о вёрстке в несколько колонок, никаких преград для этого способа нету.
В любом случае, с таким способом для float
можно оставить только то, для чего он был создан первоначально, для вставки иллюстрации внутрь статьи, например. Для всего остального существует inline-block
.
Автор: darkside
На этом сайте утыкано float’ом