@IvanGrishov
Начинающий Frontend разработчик

Как автоматически подогнать размер шрифта, чтобы он полностью заполнял контейнер и зависел от высоты контейнера?

Здравствуйте.

У меня есть блок с фиксированной высотой и предполагается из админки вставлять в этот блок текст разной длины.
Мне необходимо, чтобы этот текст полностью помещался в контейнер и не выходил за высоту блока, чтобы автоматически назначался определенный размер шрифта.

Подскажите пожалуйста, как можно решить эту проблему, может есть какая-то библиотека для этого?

пример, как должен подстраиваться шрифт
62cb0ec99e02f452036784.jpeg
62cb0ed5cd884490839059.jpeg

Спасибо за любой совет.

https://codepen.io/IvanGrishov/pen/KKoMNro
  • Вопрос задан
  • 1385 просмотров
Пригласить эксперта
Ответы на вопрос 3
SemanticMoscow
@SemanticMoscow
font-size-adjust наверное?

но это такое себе, странное.

ну нет, точно нет.
Ответ написан
olegbarabanov
@olegbarabanov
Программист, фрилансер (ИП)
На похожий вопрос я уже отвечал на stackoverflow, поэтому чтобы не дублировать просто дам ссылку на свой ответ c пояснением и примером кода.

В том примере, шрифт будет уменьшаться только в том случае, если он не влезает в блок, а в ином случае остается как есть по умолчанию. Если вам необходимо, чтобы шрифт также и увеличивался (т.е. совсем полностью подстраивался), то возможно этот чуть доработанный пример на codepen вам более подойдет.

Если вкратце, то текст в блоке оборачивается дополнительным контейнером с overflow: hidden под размер блока и враппером, который просто оборачивает текст. Взяв огромный размер шрифта (так, чтобы враппер переполнял контейнер) и затем уменьшая его, мы уменьшаем размеры враппера и как только этот враппер перестает переполнять контейнер - убираем все лишнее(и контейнер и враппер) и оставляем подобранный размер. Данный пример похож на тот, что упоминал Semantic.Moscow, с расчетом размера шрифта за счет overflow: scroll и снижения размера шрифта до тех пор, пока скролл не пропадет.

Решение не самое лучшее, но возможно оно вам поможет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы