Выравнивание в Grid: justify-items и align-items

Тренажер по CSS для пользователей с начальным уровнем подготовки.

Тренажер CSS

В этой серии заданий вы попрактикуетесь в выравнивании дочерних элементов внутри их ячеек сетки (grid area) с помощью свойств `justify-items` и `align-items`. Свойство `justify-items` управляет выравниванием по горизонтальной оси (оси строки), а `align-items` — по вертикальной оси (оси столбца). Вы будете изменять значения этих свойств, чтобы расположить элементы в начале, конце, по центру ячейки или растянуть их на всю доступную область.

Список тем

Горизонтальное выравнивание: Начало

id: 37285_grid_justify_items_start_01

В этом задании у вас есть контейнер сетки с несколькими элементами. Ваша задача — выровнять все элементы по началу их горизонтальной оси внутри каждой ячейки сетки.

CSS
.grid-container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  height: 200px;
  border: 1px solid #ccc;
  padding: 10px;
  /* Выровняйте элементы по началу горизонтальной оси */
  input1: input2;
}

.grid-item {
  background-color: #87CEEB;
  padding: 20px;
  text-align: center;
  width: 50px; /* Фиксированная ширина для наглядности */
  height: 50px; /* Фиксированная высота для наглядности */
}
HTML
<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>
Используйте свойство `justify-items` для контейнера сетки. Чтобы выровнять элементы по началу горизонтальной оси, установите значение `start`.
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку

Вертикальное выравнивание: Центр

id: 37285_grid_align_items_center_02

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

CSS
.grid-container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  height: 250px;
  border: 1px solid #ccc;
  padding: 10px;
  /* Выровняйте элементы по центру вертикальной оси */
  input1: input2;
}

.grid-item {
  background-color: #90EE90;
  padding: 15px;
  text-align: center;
  width: 60px; /* Фиксированная ширина */
  height: 40px; /* Фиксированная высота */
}
HTML
<div class="grid-container">
  <div class="grid-item">A</div>
  <div class="grid-item">B</div>
  <div class="grid-item">C</div>
  <div class="grid-item">D</div>
</div>
Используйте свойство `align-items` для контейнера сетки. Чтобы выровнять элементы по центру вертикальной оси, установите значение `center`.
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку

Горизонтальное выравнивание: Конец

id: 37285_grid_justify_items_end_03

В этом упражнении вам нужно сместить все элементы к правому краю их ячеек сетки. Примените необходимое свойство и значение к контейнеру.

CSS
.grid-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
  height: 150px;
  border: 1px solid #ccc;
  padding: 10px;
  /* Выровняйте элементы по концу горизонтальной оси */
  justify-items: input1;
}

.grid-item {
  background-color: #FFB6C1;
  padding: 10px;
  width: 80px; /* Фиксированная ширина */
  height: 30px; /* Фиксированная высота */
  text-align: center;
}
HTML
<div class="grid-container">
  <div class="grid-item">Элемент 1</div>
  <div class="grid-item">Элемент 2</div>
</div>
Используйте свойство `justify-items` со значением `end`, чтобы выровнять элементы по концу горизонтальной оси.
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку

Вертикальное выравнивание: Конец

id: 37285_grid_align_items_end_04

Сместите элементы так, чтобы они прижимались к нижнему краю своих ячеек. Используйте свойство для управления вертикальным выравниванием.

CSS
.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
  height: 200px;
  border: 1px solid #ccc;
  padding: 5px;
  /* Выровняйте элементы по концу вертикальной оси */
  align-items: input1;
}

.grid-item {
  background-color: #ADD8E6;
  padding: 20px;
  width: 40px; /* Фиксированная ширина */
  height: 60px; /* Фиксированная высота */
  text-align: center;
}
HTML
<div class="grid-container">
  <div class="grid-item">1</div>
  <div class="grid-item">2</div>
  <div class="grid-item">3</div>
</div>
Примените свойство `align-items` со значением `end` к контейнеру сетки.
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку

Полное центрирование

id: 37285_grid_justify_align_center_05

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

CSS
.grid-container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 10px;
  height: 280px;
  border: 1px solid #ccc;
  padding: 10px;
  /* Горизонтальное центрирование */
  input1: input2;
  /* Вертикальное центрирование */
  input3: input4;
}

.grid-item {
  background-color: #FFD700;
  padding: 15px;
  width: 70px; /* Фиксированная ширина */
  height: 45px; /* Фиксированная высота */
  text-align: center;
}
HTML
<div class="grid-container">
  <div class="grid-item">Центр</div>
  <div class="grid-item">Центр</div>
  <div class="grid-item">Центр</div>
  <div class="grid-item">Центр</div>
</div>
Используйте `justify-items: center;` для горизонтального центрирования и `align-items: center;` для вертикального центрирования.
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку

Выравнивание в угол: Верхний правый

id: 37285_grid_justify_end_align_start_06

Разместите элементы в верхнем правом углу каждой ячейки сетки. Это потребует комбинации значений для горизонтального и вертикального выравнивания.

CSS
.grid-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  height: 180px;
  border: 1px solid #ccc;
  padding: 10px;
  /* Выравнивание по правому краю */
  input1: end;
  /* Выравнивание по верхнему краю */
  input2: start;
}

.grid-item {
  background-color: #FFA07A;
  padding: 10px;
  width: 50px; /* Фиксированная ширина */
  height: 50px; /* Фиксированная высота */
  text-align: center;
}
HTML
<div class="grid-container">
  <div class="grid-item">1</div>
  <div class="grid-item">2</div>
</div>
Используйте `justify-items: end;` для выравнивания по правому краю (горизонтально) и `align-items: start;` для выравнивания по верхнему краю (вертикально).
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку

Растягивание элементов

id: 37285_grid_stretch_items_07

По умолчанию элементы в Grid растягиваются, чтобы заполнить ячейку. В этом примере для элементов задана фиксированная ширина и высота. Ваша задача — изменить свойства выравнивания так, чтобы элементы снова растягивались и заполняли всё доступное пространство ячейки по обеим осям.

CSS
.grid-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  height: 200px;
  border: 1px solid #ccc;
  padding: 10px;
  /* Заставьте элементы растягиваться по горизонтали */
  justify-items: input1;
  /* Заставьте элементы растягиваться по вертикали */
  align-items: input2;
}

.grid-item {
  background-color: #DA70D6;
  /* Уберем фиксированные размеры, чтобы stretch работал */
  /* width: 50px; */
  /* height: 50px; */
  text-align: center;
  padding: 10px; /* Добавим padding для наглядности */
  border: 1px dashed black; /* Граница для видимости растяжения */
}
HTML
<div class="grid-container">
  <div class="grid-item">Растяни меня</div>
  <div class="grid-item">И меня</div>
</div>
Чтобы элементы растягивались по горизонтали, используйте `justify-items: stretch;`. Для растягивания по вертикали используйте `align-items: stretch;`. Это значения по умолчанию, но здесь их нужно указать явно, чтобы переопределить другие стили или просто для практики.
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку

Выравнивание изображений: Нижний левый угол

id: 37285_grid_image_align_08

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

CSS
.grid-container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, 140px); /* Задаем высоту строк */
  gap: 10px;
  border: 1px solid #ccc;
  padding: 10px;
  /* Горизонтальное выравнивание */
  input1: input2;
  /* Вертикальное выравнивание */
  input3: input4;
}

.grid-item {
  background-color: #f0f0f0; /* Фон для наглядности ячейки */
}

.grid-item img {
  width: 50px;
  height: 50px;
  display: block; /* Убирает лишние отступы у img */
}
HTML
<div class="grid-container">
  <div class="grid-item"><img src="https://naytikurs.ru/img/1.png" alt="Image 1"></div>
  <div class="grid-item"><img src="https://naytikurs.ru/img/2.png" alt="Image 2"></div>
  <div class="grid-item"><img src="https://naytikurs.ru/img/4.png" alt="Image 3"></div>
  <div class="grid-item"><img src="https://naytikurs.ru/img/5.png" alt="Image 4"></div>
</div>
Используйте `justify-items: start;` для выравнивания по левому краю (горизонтально) и `align-items: end;` для выравнивания по нижнему краю (вертикально).
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку
НайтиКурс.Ру