Skip to content

CSS Grid

Утилиты для построения двумерных лэйаутов с CSS Grid. Все классы поддерживают адаптивные префиксы.

Включить grid-контекст

Используйте d-grid или d-inline-grid из утилит Display, чтобы активировать grid.

html
<div class="d-grid grid-cols-3 gap-4">
  <div>1</div>
  <div>2</div>
  <div>3</div>
</div>

grid-template-columns

Определяет количество равных колонок на дробных единицах.

КлассCSS
grid-cols-1grid-template-columns: repeat(1, minmax(0, 1fr))
grid-cols-2grid-template-columns: repeat(2, minmax(0, 1fr))
grid-cols-3grid-template-columns: repeat(3, minmax(0, 1fr))
grid-cols-4grid-template-columns: repeat(4, minmax(0, 1fr))
grid-cols-6grid-template-columns: repeat(6, minmax(0, 1fr))
grid-cols-12grid-template-columns: repeat(12, minmax(0, 1fr))
grid-cols-nonegrid-template-columns: none

Генерируются классы от 1 до 12.

grid-template-rows

КлассCSS
grid-rows-1grid-template-rows: repeat(1, minmax(0, 1fr))
grid-rows-2grid-template-rows: repeat(2, minmax(0, 1fr))
grid-rows-3grid-template-rows: repeat(3, minmax(0, 1fr))
grid-rows-6grid-template-rows: repeat(6, minmax(0, 1fr))
grid-rows-nonegrid-template-rows: none

Генерируются классы от 1 до 6.

Растяжение по колонкам (col-span)

Управляет тем, сколько колонок занимает элемент.

КлассCSS
col-span-1grid-column: span 1 / span 1
col-span-2grid-column: span 2 / span 2
col-span-6grid-column: span 6 / span 6
col-span-12grid-column: span 12 / span 12
col-span-fullgrid-column: 1 / -1
html
<div class="d-grid grid-cols-12 gap-4">
  <div class="col-span-8">Основной контент</div>
  <div class="col-span-4">Боковая панель</div>
</div>

Растяжение по строкам (row-span)

КлассCSS
row-span-1grid-row: span 1 / span 1
row-span-2grid-row: span 2 / span 2
row-span-fullgrid-row: 1 / -1

Генерируются классы от 1 до 6.

Позиция по колонкам (col-start / col-end)

Явное размещение элемента по линиям сетки.

КлассCSS
col-start-1col-start-13grid-column-start: N
col-end-1col-end-13grid-column-end: N
col-start-autogrid-column-start: auto
col-end-autogrid-column-end: auto

Позиция по строкам (row-start / row-end)

КлассCSS
row-start-1row-start-7grid-row-start: N
row-end-1row-end-7grid-row-end: N
row-start-autogrid-row-start: auto
row-end-autogrid-row-end: auto

grid-auto-flow

Управляет направлением авто-размещения элементов.

КлассCSS
grid-flow-rowgrid-auto-flow: row
grid-flow-colgrid-auto-flow: column
grid-flow-densegrid-auto-flow: dense
grid-flow-row-densegrid-auto-flow: row dense
grid-flow-col-densegrid-auto-flow: column dense

grid-auto-columns / grid-auto-rows

Размер неявно создаваемых треков.

КлассCSS
auto-cols-autogrid-auto-columns: auto
auto-cols-mingrid-auto-columns: min-content
auto-cols-maxgrid-auto-columns: max-content
auto-cols-frgrid-auto-columns: minmax(0, 1fr)
auto-rows-autogrid-auto-rows: auto
auto-rows-mingrid-auto-rows: min-content
auto-rows-maxgrid-auto-rows: max-content
auto-rows-frgrid-auto-rows: minmax(0, 1fr)

place-items

Шорткат для align-items + justify-items.

КлассЗначение
place-items-startstart
place-items-endend
place-items-centercenter
place-items-stretchstretch
place-items-baselinebaseline

place-content

Шорткат для align-content + justify-content.

КлассЗначение
place-content-startstart
place-content-endend
place-content-centercenter
place-content-stretchstretch
place-content-betweenspace-between
place-content-aroundspace-around
place-content-evenlyspace-evenly

place-self

Шорткат для align-self + justify-self отдельного элемента.

КлассЗначение
place-self-autoauto
place-self-startstart
place-self-endend
place-self-centercenter
place-self-stretchstretch

Адаптивные варианты

Все grid-утилиты поддерживают адаптивные префиксы (mobile-first):

html
<!-- 1 колонка на мобильных → 2 с sm → 3 с md → 4 с lg -->
<div class="d-grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
  <div>A</div>
  <div>B</div>
  <div>C</div>
  <div>D</div>
</div>

Адаптивный col-span:

html
<div class="d-grid grid-cols-12 gap-4">
  <!-- полная ширина на мобильных, 8/12 с md -->
  <div class="col-span-12 md:col-span-8">Основной</div>
  <div class="col-span-12 md:col-span-4">Боковой</div>
</div>

Примеры

Dashboard — 12-колоночная сетка:

html
<div class="d-grid grid-cols-12 gap-4">
  <div class="col-span-12 md:col-span-3">Навигация</div>
  <div class="col-span-12 md:col-span-6">Контент</div>
  <div class="col-span-12 md:col-span-3">Виджеты</div>
</div>

Карточки — адаптивная сетка:

html
<div class="d-grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6">
  <div class="col-span-1 sm:col-span-2 lg:col-span-1">Главная карточка</div>
  <div>Карточка</div>
  <div>Карточка</div>
</div>

Центрирование элемента:

html
<div class="d-grid grid-cols-3 grid-rows-3 place-items-center" style="height: 300px">
  <div class="col-start-2 row-start-2">По центру</div>
</div>

Для произвольных значений вроде grid-template-columns: repeat(5, 120px) используйте JIT-классы @vueland/utils-jit: grid-cols-[repeat(5,120px)].