Найти в Дзене
Dull

css grid | Гайд для начинающих

CSS Grid Layout — это мощный инструмент для создания двухмерных макетов веб-страниц. Он позволяет легко размещать элементы на сетке, управлять их размерами и расположением как по строкам, так и по столбцам. Вот основные концепции и примеры использования CSS Grid: Вот простой пример, который демонстрирует основные возможности CSS Grid: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CSS Grid Example</title> <style> .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); /* 3 столбца одинаковой ширины */ grid-template-rows: auto; /* Высота строк автоматически подстраивается */ gap: 10px; /* Расстояние между ячейками */ padding: 10px; } .grid-item { background-color: #4CAF50; color: white; border: 1px solid #333; padding: 20px; text-align: center; } </style> </head> <body> <div class="grid-container"> <div class="grid-item">1</div> <div class="grid-item">2</div> <div class="grid-it
Оглавление

CSS Grid Layout — это мощный инструмент для создания двухмерных макетов веб-страниц. Он позволяет легко размещать элементы на сетке, управлять их размерами и расположением как по строкам, так и по столбцам. Вот основные концепции и примеры использования CSS Grid:

Основные понятия

  1. Контейнер сетки: Элемент, которому присвоено свойство display: grid; или display: inline-grid;. Все дочерние элементы этого контейнера становятся элементами сетки.
  2. Элементы сетки: Дочерние элементы контейнера сетки, которые могут быть размещены в ячейках сетки.
  3. Строки и столбцы: Сетка состоит из строк и столбцов, которые можно задавать с помощью свойств grid-template-rows и grid-template-columns.
  4. Ячейки сетки: Пересечение строки и столбца, в которое можно помещать элементы.

Пример использования CSS Grid

Вот простой пример, который демонстрирует основные возможности CSS Grid:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>CSS Grid Example</title>

<style>

.grid-container {

display: grid;

grid-template-columns: repeat(3, 1fr); /* 3 столбца одинаковой ширины */

grid-template-rows: auto; /* Высота строк автоматически подстраивается */

gap: 10px; /* Расстояние между ячейками */

padding: 10px;

}

.grid-item {

background-color: #4CAF50;

color: white;

border: 1px solid #333;

padding: 20px;

text-align: center;

}

</style>

</head>

<body>

<div class="grid-container">

<div class="grid-item">1</div>

<div class="grid-item">2</div>

<div class="grid-item">3</div>

<div class="grid-item">4</div>

<div class="grid-item">5</div>

<div class="grid-item">6</div>

</div>

</body>

</html>

-2

Объяснение кода:

  1. Контейнер сетки:display: grid; — устанавливает элемент как контейнер сетки.
    grid-template-columns: repeat(3, 1fr); — создает три столбца одинаковой ширины (1fr означает "одна доля доступного пространства").
    gap: 10px; — задает расстояние между ячейками сетки.
  2. Элементы сетки:.grid-item — стиль для элементов сетки, включая цвет фона, цвет текста и отступы.

Дополнительные свойства CSS Grid

  • grid-template-areas: Позволяет задавать области сетки с именами, что упрощает размещение элементов.
  • grid-column и grid-row: Позволяют задавать, на каких строках и столбцах будет находиться элемент.
  • justify-items и align-items: Позволяют управлять выравниванием элементов по горизонтали и вертикали.

Пример с использованием именованных областей

.grid-container {

display: grid;

grid-template-columns: 1fr 2fr; /* 1 столбец занимает 1 долю, второй — 2 доли */

grid-template-rows: auto auto;

grid-template-areas:

"header header"

"sidebar content"

"footer footer";

}

.header {

grid-area: header;

}

.sidebar {

grid-area: sidebar;

}

.content {

grid-area: content;

}

.footer {

grid-area: footer;

}

Заключение

CSS Grid — это мощный инструмент для создания гибких и сложных макетов. Он позволяет легко управлять расположением и размером элементов на странице, что делает его идеальным выбором для современного веб-дизайна.