CSS Grid для начинающих: создание сетки, grid cell, flexbox

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

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

В CSS Grid, 📐 grid cell — это как ячейка в таблице Excel. Это местечко, где пересекаются строки и колонки, и куда ты можешь поместить свой контент. Проще говоря, это квадратик, в который ты кладешь части своей веб-страницы.

🚀 Grid cell решает проблему организации и выравнивания контента на веб-странице. Это делает макеты гибкими и адаптивными, подстраиваясь под любой размер экрана.

🔑 Знание о grid cell упрощает создание сложных макетов, делая их более структурированными и управляемыми. Это ключевой навык для эффективной веб-разработки, позволяющий быстро адаптировать дизайн под различные устройства без лишних головоломок.

Пример

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

HTML
Скопировать код
<div class="guests-grid">
  <div class="guest">
    <img src="guest1.jpg" alt="Фото гостя">
    <h3>Иван Иванов</h3>
    <p>Известный писатель и путешественник</p>
  </div>
  <div class="guest">
    <img src="guest2.jpg" alt="Фото гостя">
    <h3>Мария Смирнова</h3>
    <p>Фотограф с мировым именем</p>
  </div>
  <!-- Добавьте больше гостей по аналогии -->
</div>
CSS
Скопировать код
.guests-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.guest {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.guest img {
  width: 100px;
  height: 100px;
  border-radius: 50%;
}

.guest h3, .guest p {
  text-align: center;
}

В этом примере мы создали сетку для размещения информации о гостях мероприятия. Каждый гость размещается в своей ячейке (grid cell), что позволяет нам легко управлять расположением элементов. Свойство grid-template-columns: repeat(3, 1fr); создает три колонки одинаковой ширины, а gap: 20px; добавляет пространство между ячейками. Таким образом, независимо от размера экрана, информация о гостях будет выглядеть аккуратно и организованно. Это решает проблему адаптивного дизайна, делая ваш сайт удобным для просмотра на любых устройствах.

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

Введение в мир CSS Grid

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

Первые шаги с CSS Grid

Чтобы начать работу с CSS Grid, важно понять его основные концепции и как они взаимодействуют друг с другом. В основе grid layout лежат два типа элементов: grid container (грид-контейнер) и grid item (грид-элементы). Грид-контейнер — это родительский элемент, который определяет область, внутри которой будет создаваться сетка. Грид-элементы — это дочерние элементы контейнера, которые размещаются внутри сетки.

Создание сетки

Чтобы превратить элемент в грид-контейнер, достаточно применить к нему свойство display: grid;. После этого можно начать определять структуру сетки с помощью свойств grid-template-columns и grid-template-rows, которые задают количество и размер колонок и строк соответственно.

CSS
Скопировать код
.container {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  grid-template-rows: 100px auto 100px;
}

В этом примере создается сетка с тремя колонками разной ширины и тремя строками разной высоты.

Выравнивание элементов внутри сетки

Одной из сильных сторон CSS Grid является возможность точного выравнивания элементов внутри grid cell. Свойства justify-items, align-items, justify-content, и align-content позволяют контролировать расположение элементов как по горизонтали, так и по вертикали, обеспечивая высокую степень гибкости при проектировании макетов.

Когда выбирать CSS Grid, а когда Flexbox

CSS Grid и Flexbox не являются взаимозаменяемыми технологиями, а скорее дополняют друг друга. Flexbox идеально подходит для одномерных макетов, где необходимо управлять расположением элементов в одной оси (горизонтальной или вертикальной). CSS Grid же предназначен для создания двухмерных макетов, позволяя одновременно контролировать расположение элементов как по горизонтали, так и по вертикали.

Примеры использования grid-template-areas

Свойство grid-template-areas предлагает еще один способ управления макетом, позволяя разработчикам создавать сложные макеты с помощью именованных областей. Это делает код более читаемым и понятным.

CSS
Скопировать код
.container {
  display: grid;
  grid-template-areas: 
    "header header header"
    "sidebar content content"
    "footer footer footer";
}

.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.content { grid-area: content; }
.footer { grid-area: footer; }

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

CSS Grid открывает перед разработчиками огромные возможности для создания адаптивных и гибких макетов. Начиная с основ grid layout и заканчивая продвинутыми техниками, такими как grid-template-areas, разработчики могут творить по-настоящему впечатляющие веб-страницы, которые будут выглядеть отлично на любом устройстве.