Задать вопрос
mal1kov
@mal1kov
Притворись дураком 5 минут, чем быть им всю жизнь.

Как уменьшать и адаптировать текст, в размер блока, а не в размер браузера?

Есть блок. Он заполняется текстом при определенных событиях. Но при большом объеме текста, он выходит за границу блока. Добавляю overflow но нижняя часть текста вырезается.

Нашёл это на форуме, но тут после добавления текста просто появляется скролл, а мне надо чтобы просто текст уменьшался:
codepen.io/iiil/pen/yDbtL
В нём есть ещё и кнопка "добавить текст", которая добавляет тот же самый текст два раза и текст уменьшается, но мне нужно без этой кнопки и без добавления текста текст разместился в блок.

Как сделать текст адаптивным? Чтобы его размер уменьшался при переполнении div'а?
  • Вопрос задан
  • 188 просмотров
Подписаться 2 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Stepik
    JavaScript с нуля - основы языка и практика для начинающих
    2 недели
    Далее
  • Merion Academy
    Фронтенд-разработчик с нуля
    4 месяца
    Далее
  • Skypro
    JavaScript-разработчик с нуля
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Решения вопроса 1
mal1kov
@mal1kov Автор вопроса
Притворись дураком 5 минут, чем быть им всю жизнь.
Updated: нашел решение: пример и библиотека
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
NooBiToo
@NooBiToo
там ведь JS код уже готовый, берите да используйте
function scale(block) {
  var step = 0.1,
      minfs = 9,
      scw = block.scrollWidth,
      w = block.offsetWidth;
  if (scw < w) {
    var fontsize = parseInt($(block).css('font-size'), 10) - step;
    if (fontsize >= minfs){
      $(block).css('font-size',fontsize)
      scale(block);
    }
  }
}
// demo
var text = $('div').html();
$('a').click(function(){
  $('div').html($('div').html() + text);
  scale($('div')[0]);
});

Но если использовать без кнопки, вам нужно будет следить за изменением (onchange) блока и применять функцию scale
Ответ написан
Ваш ответ на вопрос

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

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