Для создания textarea
, который автоматически изменяет свою высоту в зависимости от содержимого, вы можете использовать следующий подход:
textarea {
box-sizing: border-box;
}
// Получаем элемент textarea
const textarea = document.querySelector('textarea');
// Вешаем слушатель события ввода
textarea.addEventListener('input', ()=> {
// обнуляем высоту, чтобы поле уменьшалось, если содержимое уменьшается
textarea.style.height = ``
// Устанавливаем высоту равной высоте поля со скроллом.
// При этом прибавляем к ней размер бордера снизу + сверху.
// Тоесть если бордер размером 1px, значит добавляем 2px.
textarea.style.height = `${textarea.scrollHeight + 2}px`
})