Галерею изображений можно реализовать при помощи display: inline-block и float:left? Какие различия между этими подходами? Какой вариант выбрали бы вы?
Пример галереи с float можно увидеть в песочнице (её описание - в статье про float).
Вопросы по примеру галереи
Решение
Вопросы по примеру галереи
- Что будет, если контейнеру
ULпоставить рамкуborder? - Что будет, если элементы
LIразличаются по размеру? Будут ли они корректно перенесены на новую строку в обоих случаях? - Как будут вести себя блоки, находящиеся под галереей?
Ответы
Ответы
Разница колоссальная.
В первую очередь она в том, что inline-block продолжают участвовать в потоке, а float — нет.
Ответы на вопросы по примеру:
- Что будет, если контейнеру
ULпоставить рамкуborder? - Контейнер не выделяет пространтво под
float. А больше там ничего нет. В результате он просто сожмётся в одну линию сверху.А в случае с
inline-blockвсё будет хорошо.
- Что будет, если элементы
LIразличаются по размеру? Будут ли они корректно перенесены на новую строку в обоих случаях? - При
float:leftэлементы двигаются направо до тех пор, пока не наткнутся на границу внешнего блока (с учётомpadding) или на другойfloat-элемент.Может получиться вот так (можно увидеть, изменяя размера окна этой страницы):

При использовании
inline-blockтаких странностей не будет, блоки перенесутся корректно на новую строку. И, кроме того, можно выровнять элементы по высоте при помощиli { vertical-align:middle }: - Как будут вести себя блоки, находящиеся под галереей?
- В случае с
floatнужно добавитьclear, чтобы поведение было идентично обычному блоку.
#494