Урок 220 із 239
92%
← Назад

Значення auto-fit у CSS Grid

Вивчаємо використання auto-fit разом з repeat() та minmax() для створення адаптивних колонок у CSS Grid.

Значення auto-fit у CSS Grid

У CSS Grid значення auto-fit використовується у функції repeat() для автоматичного підлаштування кількості колонок під ширину контейнера.

На відміну від auto-fill, auto-fit не просто створює доступні колонки, а розтягує або стискає існуючі колонки, щоб вони максимально заповнили простір контейнера.

<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
  <div>7</div>
  <div>8</div>
</div>
#parent {
  display: grid;

  grid-template-columns:
    repeat(auto-fit, minmax(150px, 1fr));

  border: 2px solid #696989;
  padding: 10px;
  width: 600px;
}

#parent > div {
  padding: 10px;
  border: 1px solid #696989;
}

При ширині контейнера 600px браузер автоматично визначає кількість колонок та розподіляє між ними доступний простір.

#parent {
  display: grid;

  grid-template-columns:
    repeat(auto-fit, minmax(150px, 1fr));

  width: 400px;
}

Колонки залишаються адаптивними: вони не стають меншими за 150px, але можуть займати більше місця завдяки 1fr.

❗ Важливо:

auto-fit часто використовують для адаптивних карток товарів, галерей та списків, де кількість колонок повинна змінюватися автоматично.

Різниця між auto-fill та auto-fit

  • auto-fill створює стільки колонок, скільки може поміститися.
  • auto-fit підлаштовує колонки під доступний простір.
  • auto-fit розтягує колонки, щоб заповнити весь контейнер.
  • Обидва значення часто використовуються разом з minmax().
#parent {
  display: grid;

  grid-template-columns:
    repeat(auto-fit, minmax(150px, 1fr));
}
📌 Завдання:
  1. №1. Створіть Grid із дев'ятьма елементами.
  2. №2. Використайте auto-fit для створення адаптивних колонок.
  3. №3. Налаштуйте контейнер так, щоб елементи розмістилися у три ряди.
  4. №4. Змініть ширину контейнера так, щоб елементи розмістилися у два ряди.
💡 Показати підказку

Використовуйте repeat(auto-fit, minmax(150px, 1fr)) та змінюйте ширину контейнера.

✅ Показати відповідь
#parent {
  display: grid;

  grid-template-columns:
    repeat(auto-fit, minmax(150px, 1fr));

  width: 600px;
}

/* Для двох рядів можна зменшити ширину контейнера */
#parent {
  width: 400px;
}