Центрирование элементов в последнем ряду CSS Grid

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Еффективный способ центрирования элементов в последнем ряду CSS Grid – введение в игру псевдоэлемента, заданного свойству grid-column: 1 / -1;. Так создаем невидимый элемент, помогающий располагать элементы последнего ряда по центру, если их количество меньше общего числа колонок в сетке:

CSS
Скопировать код
.grid-container::after {
  content: '';
  grid-column: 1 / -1; // "Теневой помощник" для центрирования
}

.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr); // Три колонки — основные игроки
}

.grid-item:last-child {
  justify-self: center; // Ключевой элемент, находящийся в центре
}
HTML
Скопировать код
<div class="grid-container">
  <!-- ... здесь могут находиться другие элементы ... -->
  <div class="grid-item">Last</div> <!-- Вот она, ключевая фигура -->
</div>

Представленное решение надежно справляется с центрированием последнего ряда элементов, независимо от их количества.

Кинга Идем в IT: пошаговый план для смены профессии

Flexbox: Альтернативный подход

Гибкое расположение элементов в последнем ряду

Flexbox при позиционировании одномерных массивов превосходит CSS Grid благодаря своим возможностям по детальному контролю над выравниванием. Комбинирование свойств justify-content: center с flex-wrap: wrap позволяет элементам последнего ряда стать центром внимания, не потеряв при этом гибкости и отзывчивости.

Управление пространством с помощью маржинов и функции calc()

Как бывает в флюсезон, элементы иногда предпочитают сохранить личное пространство. В этом случае пригодится flex: 0 0 calc(16.66% – 20px). Применение этого подхода помогает поддерживать равные расстояния между элементами, сохраняя при этом их одинаковую ширину. Дополнительное свойство box-sizing: border-box учитывает поля и границы элементов, не нарушая общую компоновку.

Отношение к отдельным элементам

Ни один разумный разработчик не оставит элементы последнего ряда без внимания. Псевдоклассы, такие как :nth-child и :nth-last-child, используются для особого ухода за теми, кто оказался одинок. Это дает возможность стилистическии корректировки и выравнивания их в центр своего мира.

Заключение по отзывчивости

С Flexbox нам больше не нужно задавать фиксированную ширину дочерним элементам, что делает нашу верстку более гибкой и современной. В отличие от CSS Grid, где структура определяется на основе размеров вьюпорта или контента, Flexbox дает элементам больше "дыхательного пространства". Поэтому выбор между Flexbox и CSS Grid следует основывать на целях и задачах, определенных дизайном.