Ответ 1
Не совсем. Обычно это делается с помощью javascript.
есть хорошее обсуждение способов сделать это здесь...
Я заполняю текстовую область с содержимым для редактирования пользователем.
Можно ли растягивать содержимое с помощью css (например, overflow:show
для div)?
Не совсем. Обычно это делается с помощью javascript.
есть хорошее обсуждение способов сделать это здесь...
только одна строка
<textarea name="text" oninput='this.style.height = "";this.style.height = this.scrollHeight + "px"'></textarea>
Вот функция, которая работает с jQuery (только для высоты, а не для ширины):
function setHeight(jq_in){
jq_in.each(function(index, elem){
// This line will work with pure Javascript (taken from NicB answer):
elem.style.height = elem.scrollHeight+'px';
});
}
setHeight($('<put selector here>'));
Примечание: Оп попросил решение, которое не использует Javascript, однако это должно быть полезно многим людям, которые сталкиваются с этим вопросом.
Это очень простое решение, но оно работает для меня:
<!--TEXT-AREA-->
<textarea id="textBox1" name="content" TextMode="MultiLine" onkeyup="setHeight('textBox1');" onkeydown="setHeight('textBox1');">Hello World</textarea>
<!--JAVASCRIPT-->
<script type="text/javascript">
function setHeight(fieldId){
document.getElementById(fieldId).style.height = document.getElementById(fieldId).scrollHeight+'px';
}
setHeight('textBox1');
</script>
Этот плагин JQuery - это именно то, что вы хотите http://flaviusmatis.github.io/flexibleArea.js/.
Он применяет это решение.