Конспект «Микросетки. Продолжение». Раздел 1

Поперечная ось и свойство align-items (флекс)

Во флексах свойство align-items управляет расположением элементов на поперечной оси.

Поперечная ось идёт перпендикулярно главной оси и по умолчанию направлена сверху вниз:

Схема осей флекса

Во флекс-контейнере свойство align-items может иметь следующие значения:

  • stretch — значение по умолчанию; элементы растягиваются на всю высоту поперечной оси.
  • flex-start — элементы сжимаются до содержимого и располагаются в начале поперечной оси (по умолчанию сверху);
  • flex-end — элементы сжимаются до содержимого и располагаются в конце поперечной оси (по умолчанию снизу);
  • center — элементы сжимаются до содержимого и располагаются по центру поперечной оси;

Поворот главной оси, свойство flex-direction

Главную ось поворачивают, чтобы сохранить внутри флекс-контейнера направление потока сверху вниз. За направление главной оси отвечает свойство flex-direction. По умолчанию у него значение row (ряд), но его можно изменить на column (колонка):

flex-container {
  display: flex;
  flex-direction: column;
}

В этом случае главная ось будет направлена сверху вниз, а поперечная — слева направо. В результате флекс-элементы выстроятся сверху вниз.

По умолчанию флекс-элементы сжимаются по главной оси и растягиваются по поперечной. Таким образом, если главная ось направлена слева направо, то элементы сжимаются по горизонтали и растягиваются по вертикали.

Схема осей флекса

Если же главная ось направлена сверху вниз, то сжатие происходит по вертикали, а растяжение — по горизонтали.

Схема повёрнутых осей флекса

Получается, чтобы при повёрнутых осях выровнять элемент по горизонтали, нужно задать ему выравнивание по поперечной оси.

Свойство align-self (флекс)

Свойство align-self задаётся флекс-элементу и говорит, как ему расположиться на поперечной оси. Значения у этого свойства такие же, как у align-items: stretch (значение по умолчанию), flex-start, flex-end и center.

.element {
  align-self: flex-end;
}

Свойство order

Чтобы изменить визуальный порядок элементов, удобно использовать свойство order. В качестве значения свойство принимает число, причём оно может быть как положительным, так и отрицательным. По умолчанию у всех элементов свойство order равно нулю.

.element {
  order: 5;
}

Элементы выстраиваются от меньшего значения order к большему. Если у нескольких элементов одинаковое значение, используется их порядок в разметке.

Свойство order работает только в грид- и флекс-контейнерах.

Отступы у флекс-элементов

Внешние отступы у соседних флекс-элементов складываются.

Внешние отступы соседних элементов

Чтобы не запутаться и получить именно те размеры, которые указаны в макете, верстальщики добавляют элементам внешние отступы только с одной стороны. Часто внешние отступы задают в направлении потока. Если элементы выстроены горизонтально, то отступ задают справа, а у последнего элемента обнуляют:

Внешние отступы, горизонтальный поток

Если элементы выстроены вертикально, то отступ добавляют снизу. Исключение — самый последний элемент (например, подвал страницы), ему при необходимости задают отступ сверху:

Внешние отступы, вертикальный поток

В этом случае, даже если изменить порядок секций, они не слипнутся, а между ними не появятся лишние отступы.

Уменьшение изображений с сохранением пропорций

Если использовать картинку большего размера, чем родительский элемент, она выпадет из контейнера. Чтобы не допускать подобного, верстальщики добавляют картинкам такие стили:

img {
  max-width: 100%;
  height: auto;
}

Свойство max-width задаёт максимальную ширину, а значение 100% говорит, что элемент не должен становиться больше ширины родителя.

Свойство height задаёт высоту элемента. Значение auto используют, чтобы изображение не деформировалось и сохраняло свои пропорции. Если его не указать, то будет использовано значение атрибута height из разметки, и картинка, скорее всего, исказится.

Этот способ работает, потому что у CSS-свойств max-width и height приоритет выше, чем у атрибутов width и height в разметке.

Бабушка Кекс

Притормози, дружище

Проходить вызовы части «Микросетки. Продолжение» тренажёра «Базовые механики построения сеток» можно после регистрации и оформления подписки.