Можно поставить размер шрифта в зависимости от размеров экрана, но через calc() задавать минимальное значение.
В этом примере (
codepen.io/paulradzkov/pen/jqYqgY ) размер шрифта заголовка никогда не будет меньше 16px (1em):
h1 {
font-size: calc(1em + 4vw);
}
Можно использовать более сложные формулы совместно с
@media
. Тут размер шрифта плавно меняется от 14 до 18px в диапазоне от 480 до 1024px.
@media (min-width: 480px) and (max-width: 1024px) {
p {
font-size: calc(14px + (18 - 14) * ( (100vw - 480px) / ( 1024 - 480) ));
}
}
До 480 и после 1024px размер задан жестко с использованием
@media
.
Но в целом это все сложно и редко нужно. Я обычно задаю размер фиксированно на двух-трёх диапазонах при помощи
@media
.
UPD: можно даже заставить текст максимально заполнять площадь вьюпорта
codepen.io/CrocoDillon/pen/fBJxu