В современной веб-разработке важно, чтобы интерфейсы корректно отображались на любых устройствах. Один из ключевых инструментов для создания адаптивных макетов — CSS Grid. В этой статье разберём, как с помощью Tailwind CSS легко настраивать адаптивные сетки, которые автоматически подстраиваются под доступное пространство.
1. Базовый подход: фиксированное количество колонок
Самый простой способ — использовать встроенные классы Tailwind для разного числа колонок в зависимости от размера экрана:
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
<div class="bg-gray-100 p-4">Элемент 1</div>
<div class="bg-gray-100 p-4">Элемент 2</div>
<div class="bg-gray-100 p-4">Элемент 3</div>
<div class="bg-gray-100 p-4">Элемент 4</div>
</div>Как это работает:
- На мобильных (
<640px) — 1 колонка. - На маленьких экранах (
≥640px) — 2 колонки. - На средних (
≥768px) — 3 колонки. - На больших (
≥1024px) — 4 колонки.
Плюсы:
✅ Простота настройки.
✅ Полный контроль над количеством колонок.
Минусы:
❌ Жёсткая привязка к брейкпоинтам.
❌ Не идеально подходит для динамического контента.
2. Гибкая сетка с auto-fill и auto-fit
Если нужно, чтобы элементы автоматически занимали доступное пространство, можно использовать CSS-функции repeat(auto-fill, minmax(...)) или repeat(auto-fit, minmax(...)).
Пример с Tailwind:
<div class="grid grid-cols-[repeat(auto-fill,minmax(250px,1fr))] gap-4">
<div class="bg-blue-100 p-4">Элемент 1</div>
<div class="bg-blue-100 p-4">Элемент 2</div>
<div class="bg-blue-100 p-4">Элемент 3</div>
<!-- ... -->
</div>Разбор:
auto-fill— заполняет ряд столько раз, сколько может поместиться (даже если элементов меньше).auto-fit— растягивает элементы на всю доступную ширину.minmax(250px, 1fr)— минимальная ширина элемента250px, максимальная —1fr.
Когда использовать?
✔ Галереи изображений.
✔ Списки товаров.
✔ Карточки в блоге.
3. Кастомизация Tailwind для удобства
Если часто используете auto-fit, можно добавить кастомный класс в tailwind.config.js:
module.exports = {
theme: {
extend: {
gridTemplateColumns: {
'auto-fit': 'repeat(auto-fit, minmax(250px, 1fr))',
'auto-fill': 'repeat(auto-fill, minmax(250px, 1fr))',
}
}
}
}Теперь можно писать короче:
<div class="grid grid-cols-auto-fit gap-4">
<!-- Элементы -->
</div>4. Дополнительные возможности
Адаптивные отступы (gap)
<div class="grid grid-cols-auto-fit gap-2 sm:gap-4 md:gap-6">
<!-- ... -->
</div>Разные размеры элементов (grid-column)
<div class="grid grid-cols-auto-fit gap-4">
<div class="bg-green-100 p-4 col-span-1">Обычный</div>
<div class="bg-green-100 p-4 col-span-2">Шире (2 колонки)</div>
</div>Итог
| Метод | Когда использовать |
|---|---|
| Фиксированные колонки | Когда нужен строгий контроль. |
auto-fill / auto-fit | Для динамического контента. |
| Кастомные классы | Если часто используете auto-fit. |
Какой способ лучше?
👉 Для большинства случаев подходит auto-fit, так как он максимально гибкий.
👉 Если дизайн требует точности — используйте фиксированные колонки.
Дополнительные ресурсы:
А какой способ адаптивных сеток используете вы? Делитесь в комментариях! 🚀


Добавить комментарий