Веб-Денис
Помогаем создавать лучшее
  • Ответы WP
  • HTML-CSS
  • Фон сайта
  • Блог DM
Главная › HTML-CSS › Поля

Изменение высоты textarea при вводе текста

Высота textarea выставляется автоматически
2022-05-18
Автор: неизвестно
Demo

Всем приветы и ответы!

И в сегодняшнем решении для вашего сайта, у нас интересное пополнение!

По заголовку поста, вы уже поняли, что речь пойдёт про HTML тег textarea, который отвечает за форму отправления сообщений на сайте!

И в данном примере, высота поля будет меняться автоматически и не будет появляться с правой стороны полоса прокрутки!

Но довольно слов, смотрим на готовый код!

HTML каркас

Для начала, нам надо HTML тегу textarea прописать нужный класс, в данном примере это cell-textarea, он будет прописан и в JS ниже:

PHP

<textarea class="cell-textarea" rows="1"></textarea>

Пропишем JS

Теперь, в самый низ страницы, перед закрывающим тегом </body> установим вот такой JS:

JS

<script>
document.querySelectorAll('.cell-textarea').forEach(el => {
el.style.height = el.setAttribute('style', 'height: ' + el.scrollHeight + 'px');
el.classList.add('auto');
el.addEventListener('input', e => {
el.style.height = 'auto';
el.style.height = (el.scrollHeight) + 'px';
});
});
</script>

CSS стили

И в завершении этого решения, в файл под названием style.css в самый низ установим следующие стили:

CSS

.cell-textarea {
resize: none;
&.auto {
overflow-y: hidden;
}
}
.cell-textarea {
float:left;
width:100%;
-webkit-appearance: none;
box-sizing: border-box;
outline: none;
font-family: Verdana,Arial,Helvetica, sans-serif;
font-size: 16px;
line-height: 1.8;
color:#555;
padding: 30px 30px;
border-radius: 15px;
color: #404660;
border: none;
background: #fbfbfb;
transition: box-shadow .25s;
box-shadow: inset 0 0 0 1px var(--border-color, #E1E6F9), 0 0 0 3px var(--focus-color, transparent);
&:focus {
--focus-color: #ECEFFC;
}
&:focus,
&:hover {
--border-color: #BBC1E1;
}
}

На этом у меня всё! Удачных HTML решений!

С уважением, Денис Мехедов
2 Комментария
  1. Лариcа Мышка
    19.05.2022 в 12:16
    #1

    Интересное решение, здорово вы реализовать у себя на сайте, а то у меня высота поля 200пх, неудобно с планшета оставлять комментария.

    Ответить
    • Денис М
      19.05.2022 в 18:57
      #2

      Значение 200 очень мало, особенно если у вас большой шрифт, может поставить 250-300?

      Ответить
Отменить ответ
Автор Денис Мехедов
Привет!

Я Денис Мехедов.

Я верстаю HTML-CSS:

Решений - 14
  • Горизонтальное меню 1
  • Картинки 1
  • Кнопки 2
  • Облако тегов 3
  • Подсказки 1
  • Поля 1
  • Списки 1
  • Статистика 1
  • Табы 1
  • Цитаты 2

  • О проекте
  • Автор
  • Контакты
  • Комментарии
  • © Web-Denis 2022
  • Дизайн © ДМ
  • Хостинг Timeweb
При копировании материалов, ссылка на сайт обязательна.
Политика конфиденциальности
Мы cохраняем файлы cookie.