<div contenteditable> как замена textarea
В ситуации, когда нужно, чтобы ваша textarea росла в высоту вместе с контентом, заставить её так себя вести можно только javascript'ом. Вероятно, это потребует создания скрытого блока, копирования в него содержимого textarea, высчитывания высоты и присвоения значения этой высоты вашей textarea, причём вся эта радость - при каждом нажатии клавиши. Жуть!
Но есть другой вариант: использовать вместо textarea обычный div с атрибутом contenteditable.