Можно например использовать vh, задавая и высоту блока и размеры шрифта в vh - можно получить желаемый результат, но все завит от проекта.
Обычно делаю так:
для body и html задаем font-size:2vh;
далее используем rem
добавляем пару медиазапросов и меняем font-size для body и html, например для устройств где высота, больше ширины и т.д. Тогда все резиновое. Для всех блоков тоже можно высоту в rem указывать.