Вебсправочник
Справочник CSS

clamp(): плавный размер с нижней и верхней границей

Функция clamp выбирает предпочтительное значение, ограничивая его снизу и сверху. Она удобна для плавных размеров, которые не должны становиться чрезмерно маленькими или большими.

Назначение

Функция clamp выбирает предпочтительное значение, ограничивая его снизу и сверху. Она удобна для плавных размеров, которые не должны становиться чрезмерно маленькими или большими.

Как это работает

Аргументы идут в порядке минимум, предпочтительное значение, максимум. Средний аргумент может зависеть от ширины окна, а границы — от размера шрифта. Типы значений должны подходить свойству: длины применяют к длинам, а не смешивают произвольно с числами.

Пример

<style>.fluid-title{font-size:clamp(1.5rem,1rem + 3vw,3rem);line-height:1.2;overflow-wrap:anywhere}</style>
<h2 class="fluid-title">Заголовок, который подстраивается под окно</h2>

Что должно получиться

При изменении ширины заголовок плавно меняет размер внутри установленных границ. На узком окне он не становится меньше 1.5rem, на широком — больше 3rem при обычном порядке этих границ.

Граница применения и частая ошибка

Размер только в vw способен плохо реагировать на увеличение пользовательского шрифта. Смешанное выражение с rem обычно удобнее, но не освобождает от проверки масштаба. Если минимум больше максимума, нельзя ожидать, что функция сама поменяет их местами.

Самостоятельная проверка

Измените ширину окна и увеличьте масштаб страницы до 200%. Проверьте длинный заголовок: он должен переноситься, а не обрезаться. Сравните вычисленный font-size в DevTools на трёх разных ширинах.

HTML и CSS можно изменить в песочнице ниже. Она изолирована: JavaScript, внешние ресурсы и отправка форм отключены. Проверки печати, загрузки файлов и сетевых ответов выполняйте в отдельном учебном проекте.

Попробуйте сами

HTML + CSS песочница
РЕЗУЛЬТАТ · ИЗОЛИРОВАННЫЙ ПРЕДПРОСМОТР
Измените код и нажмите «Запустить». JavaScript и внешние запросы отключены.
Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.