Выравнивание элементов по поперечной оси — одна из главнейших болей всех верстальщиков. Сколько различных способов поставить элемент по центру поперечной оси — даже и не счесть. У всех способов есть свои преимущества и недостатки, но главное одно — никакой из них не является универсальным.
Приход Flex помог решить и эту проблему всего одним простым свойством. Это действительно отлично, потому что теперь нам не важны внешние факторы: знание размеров внешнего или внутреннего блока; количество строк текста; возможность его переноса; поддержка браузером. Все это, кроме поддержки браузеров (я надеюсь, вы не разрабатываете под IE7), можно не учитывать, используя простое правило align-items
.
Для демонстрации работы правила возьмем CodePen и добавим туда три блока с разным размером шрифта:
Значение применяется по умолчанию к дочерним элементам внутри флекс-контейнера. Оно говорит, что высоту необходимо выставить автоматически в зависимости от высоты Flex-контейнера.
Ранее для достижения такого эффекта приходилось использовать JS. Блоки автоматически выставят высоту только при условии отсутствия другого значения высоты у блока в CSS.
Если один из блоков имеет свое значение высоты, то все зависит от этого значения:
При использовании любых других значений высота элементов выставляется только такой, какая необходима блоку исходя из контента, свойств padding
и border
. Меняется только расположение элементов.
Элементы располагаются с начала флекс-контейнера по поперечной оси.
Элементы внутри флекс-контейнера располагаются по центру поперечной оси.
Элементы внутри флекс-контейнера располагаются от конца поперечной оси
Если вы не знакомы со строением шрифтов, то сначала может показаться непонятным, по какой базовой линии идет выравнивание. Базовая линия шрифта — воображаемая прямая линия, которая проводится по нижнему краю букв без учета выносных элементов. Лучше всего это иллюстрирует следующая картинка:
Красным цветом выделена базовая линия шрифта. Именно по ней и будет производиться выравнивание. Браузер найдет элемент с самым большим размером шрифта и выровняет все элементы по его базовой линии. Причем другие блоки также будут выровнены по базовым линиям текста внутри них.
Создайте несколько блоков с текстами внутри флекс-контейнера. Выставьте выравнивание по базовой линии и попробуйте изменять длину текста, а также размер шрифта внутри блоков. Почувствуйте базовую линию шрифта и данное выравнивание.
Вам ответят команда поддержки Хекслета или другие студенты.
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
Зарегистрируйтесь или войдите в свой аккаунт