Проблема со всем этим заключается в том, что они не решаются, если строки текста длинные и намного шире, чем у div overflow: auto не отображается полоса прокрутки, которая работает правильно. Вот идеальное решение, которое я нашел:
Создайте два div. Внутренний div, достаточно широкий, чтобы обрабатывать самую широкую строку текста, а затем меньшую внешнюю строку, которая действует как держатель для внутреннего div:
<div style="border:2px inset #AAA;cursor:text;height:120px;overflow:auto;width:500px;">
<div style="width:800px;">
now really long text like this can be put in the text area and it will really <br/>
look and act more like a real text area bla bla bla <br/>
</div>
</div>