Помимо работы с гибкостью элементов, модуль Flex позволяет для каждого элемента внутри флекс-контейнера устанавливать месторасположение относительно других элементов. Для этого существует два свойства, которые мы рассмотрим в этом уроке:
- order
- align-self
Для рассмотрения этих свойств возьмем CodePen и расположим три элемента внутри флекс-контейнера. Как и в прошлых уроках, вы можете изменять код внутри CodePen, что очень поможет вам в изучении данных свойств.
Блоки специально сделаны разной высоты для большей наглядности работы свойств.
order
Свойство order отвечает за порядок расположения элементов внутри контейнера. Это удобная функция, позволяющая, например, перемещать элементы внутри контейнера при открытии страницы на разных устройствах.
В качестве значения order может принимать любое число, которое укажет номер расположения элемента по главной оси. Попробуем поменять первый и третий элемент внутри нашего демонстрационного примера:
Также возможно использование отрицательного значения. В таком случае никакой магии не произойдет, просто элементы с отрицательным значением order будут находиться раньше элементов с положительным значением.
Обратите внимание, что если свойство order указано не у всех элементов, то элементы без этого свойства будут выведены в месте, согласно своему расположению внутри документа. Причем первыми всегда будут выведены те элементы, у которых свойство order отсутствует, что наглядно видно в примере ниже:
Такое поведение будет только в случае положительных значений свойства order
. Элементы с отрицательным order
расположатся до элементов без этого свойства. Это связано с тем, что flex-элементы по умолчанию имеют значение свойства order равное нулю.
Цвета элементов без свойства order были сделаны немного темнее, чтобы точно можно было соотнести их расположение в браузере и в верстке. Приглядитесь к тому, где расположены блоки с классами .bg-red-one
, bg-green-two
и bg-blue-three
. Поэтому, если хотите сохранить полный контроль над расположением блоков, выставляйте свойство order для всех элементов внутри контейнера, если это свойство вам понадобилось.
align-self
Свойство align-self по своему назначению похоже на свойство align-items, которое мы рассмотрели в одном из прошлых уроков. Главным отличием является то, что свойство align-self применяется не ко всему флекс-контейнеру, а к одному конкретному элементу внутри контейнера, для которого мы хотим сменить расположение по поперечной оси.
Основными значениями свойства align-self являются:
- center
- flex-start
- flex-end
- baseline
В данном CodePen были добавлены следующие классы:
- align-self-center
- align-self-start
- align-self-end
- align-self-baseline
Попробуйте изменять классы внутри контейнера, чтобы увидеть, как будет расположен элемент.
Документация
- order
- align-self
Дополнительные материалы
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.