Функции min(), max() и clamp() в CSS используются для управления размерами элементов с учетом различных условий, таких как размер экрана, родительского контейнера или другие динамические параметры.
1️⃣ Функция min()
Возвращает наименьшее значение из списка.
📌 Пример 1: Ограничение ширины элемента
css
.box { width: min(80vw, 500px); background: lightblue; } 🔹 Что делает?
- Берет меньшее значение между
80vw(80% ширины экрана) и500px. - Если экран маленький,
80vwбудет меньше 500px, поэтомуwidthбудет80vw. - Если экран большой,
500pxокажется меньше80vw, и ширина ограничится 500px.
2️⃣ Функция max()
Возвращает наибольшее значение из списка.
📌 Пример 2: Минимальный размер шрифта
css
.text { font-size: max(16px, 2vw); } 🔹 Что делает?
- Берет большее значение между
16pxи2vw. - Если
2vwбольше16px, то используется2vw. - Если
2vwменьше16px, то текст никогда не станет меньше16px.
3️⃣ Функция clamp()
Определяет значение в заданных пределах:
clamp(минимум, предпочтительное, максимум)
📌 Пример 3: Адаптивный размер заголовка
css
h1 { font-size: clamp(20px, 5vw, 50px); } 🔹 Что делает?
- Минимальный размер шрифта —
20px. - Предпочтительный размер —
5vw(5% ширины экрана). - Максимальный размер —
50px. - Т.е. шрифт будет адаптироваться, но не выходить за границы
20pxи50px.
🎨 Пример с min(), max(), clamp() вместе
css
.box { width: min(90vw, 600px); height: max(200px, 50vh); font-size: clamp(14px, 2vw, 24px); background: coral; } 🔹 Что происходит?
✅ width: не больше 600px, но не шире 90vw.
✅ height: минимум 200px, но не меньше 50vh.
✅ font-size: не меньше 14px, не больше 24px, но в пределах 2vw.
🔥 Когда использовать?
min()→ Когда нужно ограничить максимальный размер (например, ширину контейнера).max()→ Когда нужно гарантировать минимальный размер (например, кнопки).clamp()→ Когда нужен адаптивный диапазон значений (например, текст).
Теперь можно делать гибкую вёрстку без @media! 🚀🔥
На самом деле, возможно управлять количеством колонок в CSS Grid без
@media, используя min(), max() и clamp(). Достаточно использовать функцию repeat(auto-fit, minmax(...)).