ГлавнаяИнструментыГенератор Flexbox

Генератор Flexbox

Flexbox раскладывает элементы вдоль одной оси, и почти вся путаница в нём — от того, какая ось считается главной. Инструмент показывает это наглядно: меняете направление, и подписи у выравнивания меняются местами, потому что justify-content всегда работает по главной оси, а align-items по поперечной. Настраиваются и контейнер, и отдельные элементы — можно задать разный grow и basis и посмотреть, как делится свободное место. Число блоков и их содержимое меняются, чтобы проверить поведение на реальных данных, а не на одинаковых квадратах. Готовый CSS собирается для контейнера и для тех элементов, у которых свойства отличаются от значений по умолчанию.

Предпросмотр

Клик по блоку выбирает его — ниже появятся свойства именно этого элемента.

Контейнер

Выбранный элемент

Готовый CSS

Как пользоваться

  1. Строка или колонка. От него зависит, какая ось главная и что делает каждое выравнивание.
  2. justify-content распределяет по главной оси, align-items прижимает по поперечной.
  3. Клик по блоку открывает его свойства: grow, shrink, basis, order и своё выравнивание.
  4. Готовые правила для контейнера и для изменённых элементов.

Частые вопросы

Какая ось считается главной

Та, вдоль которой выстраиваются элементы, и задаёт её flex-direction. При row главная — горизонтальная, при column — вертикальная. Это ключ ко всему: justify-content работает по главной оси, align-items по перпендикулярной ей. Смените направление на column — и justify-content начнёт выравнивать по вертикали.

Чем отличаются grow, shrink и basis

basis — начальный размер элемента до распределения места. grow — доля свободного места, которую он заберёт, если место осталось. shrink — доля сжатия, если места не хватило. Значения по умолчанию 0, 1 и auto: элемент не растягивается, но сжимается. Короткая запись flex: 1 разворачивается в grow 1, shrink 1, basis 0%.

Почему элемент не сжимается меньше содержимого

Из-за min-width со значением auto, которое действует на flex-элементы по умолчанию. Длинное слово или широкая картинка не дают блоку стать уже. Лечится явным min-width: 0 на элементе — это самая частая причина, по которой flex-раскладка вылезает за экран.

Чем flexbox отличается от grid

Flexbox раскладывает по одной оси и хорош там, где число элементов заранее неизвестно: панель кнопок, шапка, список тегов. Grid работает по двум осям сразу и нужен, когда важно совпадение колонок между строками. Практическое правило: если вы думаете «в ряд» — flex, если «таблицей» — grid.

Что делает align-content

Распределяет строки между собой, когда включён перенос и строк больше одной. При одной строке свойство не действует вообще — это регулярный источник недоумения. Не путать с align-items, который выравнивает элементы внутри своей строки.

Как задать промежутки между элементами

Свойством gap, а не отступами у детей. Отступы приходится потом убирать у крайних элементов, а gap ставит промежутки только между ними. Поддерживается во всех актуальных браузерах с 2020 года и работает и в flex, и в grid.

Данные куда-то отправляются

Нет, всё собирается в браузере.

Похожие инструменты

Ещё инструменты для SEO и маркетинга

Кластеризатор запросов, генераторы sitemap и robots.txt, минус-слова, разметка Schema.org и калькуляторы — в разделе инструментов.