Компоненты

Автоизменение высоты textarea

Скачать компонент

Высота подстраивается под контент, но с учетом атрибута rows. Rows задает минимальную высоту, которую скрипт не переопределяет. Отсутствие атрибута rows === rows="2".

В большинстве случаев вам понадобится rows="1".

Если вы изменяете value у textarea через js - нужно повторно вызвать resizeHeight(el).

Интересная деталь

let realscrollHeight = el.scrollHeight;

if (!el.value) {
  el.value = 0;
  realscrollHeight = el.scrollHeight;
  el.value = '';
}

Данный участок кода фиксит баг\особенность firefox\ie. В этих браузерах при отсутствующем value scrollHeight у textarea ~ на 5% меньше чем при наличии value. Возможно такое можно встретить не только у textarea.