Я потратил много времени, пытаясь найти ответ сам, поэтому решил, что избавлю других от необходимости отвечать. Хитрость заключается в том, чтобы использовать очень большое значение для атрибута COLS в элементе TEXTAREA. Как это
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<div style="width: 80%">
<textarea rows="20" cols="5000" style="width:100%;" ></textarea>
</div>
</body>
</html>
Я также видел обходной путь онлайн для использования непроцентного значения width
, а затем процентного значения max-width
и min-width
, но это было гораздо менее эффективно, чем другой обходной путь выше (любезно предоставлено Ross ), который работает во всех браузерах, включая IE6.
подробнее: после часа изучения проблемы проблема, по-видимому, вызвана обработкой IE8 конфликта между атрибутом "COLS" и стилем "width" в элементе textarea. Если ширина CSS больше ширины по умолчанию (ширина шрифта x столбцы), IE8 запутывается при добавлении текста и прокручивает текстовую область. Если вместо этого ширина CSS меньше ширины по умолчанию, полученной из атрибута cols, то все работает нормально.
Тонкая зависимость между столбцами и шириной, возможно, и делает проблему настолько сложной для воспроизведения, потому что одна и та же страница будет разбиваться или не разрываться в зависимости от соотношения столбцов и ширины. HTML в вопросе фактически повторяет ошибку в большом окне браузера и не воспроизводит в маленьком!