Автоматическое изменение высоты textarea вверх?

Необходимо сделать автоматическое расширение поля ввода textarea вверх, при этом желтый блок должен занимать все доступное ему пространство. Красный блок ограничен по высоте и ширине. Пока что-то не могу даже решить в каком направлении двигаться... flexbox?
5addd7881b564831909420.png
  • Вопрос задан
  • 620 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега CSS
<div class="container">
  <div class="yellow"></div>
  <textarea></textarea>
</div>

.container {
  display: inline-flex;
  width: 200px;
  height: 400px;
  flex-direction: column;
  border: 10px solid red;
}

.yellow {
  background: yellow;
  flex-grow: 1;
}

textarea {
  background: #47f;
  line-height: 20px;
  resize: none;
}

const textarea = document.querySelector('textarea');

textarea.addEventListener('input', function() {
  const maxHeight = 300;
  const height = 20 * this.value.split('\n').length;
  this.style.height = `${Math.min(height, maxHeight)}px`;
});

textarea.dispatchEvent(new Event('input'));
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@davidnum95
На голом css без js не получится так сделать. Единственный выход использовать contentEditable="true":
так
Ответ написан
Ваш ответ на вопрос

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

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