CSS Grid что это и как работает сеточная верстка
Современная верстка web страниц имеет два способа реализации, об одном из них мы рассказали в предыдущей статье: flex css что это такое и как с этим работать. Теперь мы поговорим о гридах, css grid что это и как работает. В отличие от Flexbox, который работает только в одном направлении (по строке или по столбцу), CSS Grid позволяет управлять разметкой одновременно по двум осям, что делает его идеальным для сеток, карточек, адаптивных галерей и сложных структур.
Что такое CSS Grid
CSS Grid — это двухмерная раскладка блоков, которая позволяет создавать строки и столбцы. А также, позволяет создавать расстояние между дочерними элементами и располагать их точно в нужном месте. для включения grid используем следующий css код:
.container {
display: grid;
}
Данный код показывает ответ на вопрос: display grid css что это — он включает grid сетки дочерних элементов, задавая сам стиль родительскому контейнеру.
Grid Column CSS что это такое
При помощи grid-column можно создавать гибкие макеты растягивая элемент на несколько колонок. Задается это свойство дочерним элементам:
.item {
grid-column: 1 / 3; /* Элемент займет столбцы с 1-го по 2-й включительно */
}
Grid Template Columns CSS что это такое
Интересное CSS свойство grid-template-columns одно из ключевых свойств Grid. С его помощью задаются столбцы сетки? в которых размещается сам контент и выглядит все более ровно и упорядочено.
.container {
display: grid;
grid-template-columns: 200px 1fr 200px;
}
Для более четкого понимания немного расшифруем:
- Первый столбец — занимает пространство в 200 пикселей.
- Второй столбец — занимает все доступное пространство.
- Третий столбец — как и первый занимает расстояние в 200 пикселей.
grid-template-columns: repeat(3, 1fr);
Также можно использовать для удобства repeat().
Простой пример CSS Grid
Приводим пример просто сетки 2 x 2 с равными колонками:
<div class="grid">
<div class="item item1">1</div>
<div class="item item2">2</div>
<div class="item item3">3</div>
<div class="item item4">4</div>
</div>
.grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20px;
}
Когда лучше использовать CSS Grid
Если макет двумерный — Grid, eсли макет направленный (в линию) — Flexbox. Grid отлично подходит, если нужно:
- Строить сетки товаров или их карточек.
- Делать адаптивные галереи видео или изображений.
- Создавать сложную структуру страницы: header, sidebar, article, footer.
- Выравнивать элементы одновременно по горизонтали и по вертикали.
А также, приведем для наглядности ответа на вопрос, css grid что это — таблицу с кратким пояснением:
| Свойство | Описание | Пример значения |
|---|---|---|
| display: grid; | Включает режим CSS Grid для контейнера, позволяя размещать элементы в виде сетки. | display: grid; |
| grid-template-columns | Определяет количество и ширину колонок в сетке. | grid-template-columns: 200px 1fr 2fr; |
| grid-template-rows | Задаёт количество и высоту строк в сетке. | grid-template-rows: 100px auto; |
| grid-column | Определяет, какие колонки занимает элемент. | grid-column: 1 / 3; |
| grid-row | Определяет, какие строки занимает элемент. | grid-row: 2 / 4; |
| gap | Устанавливает расстояние между строками и колонками. | gap: 20px; |
| column-gap | Определяет расстояние только между колонками. | column-gap: 15px; |
| row-gap | Устанавливает расстояние только между строками. | row-gap: 10px; |
| grid-auto-rows | Высота автоматически создаваемых строк. | grid-auto-rows: 150px; |
| grid-auto-columns | Ширина автоматически создаваемых колонок. | grid-auto-columns: 100px; |
| grid-auto-flow | Определяет направление автоматического размещения элементов. | grid-auto-flow: column; |
| justify-items | Горизонтальное выравнивание элементов внутри ячеек. | justify-items: center; |
| align-items | Вертикальное выравнивание элементов внутри ячеек. | align-items: start; |
| justify-content | Горизонтальное выравнивание всей сетки относительно контейнера. | justify-content: space-between; |
| align-content | Вертикальное выравнивание всей сетки в контейнере. | align-content: center; |