我很想知道如何创建一个具有自动调整高度的文本输入,以便它能够更高地适应您的文本?例如,如果我开始键入段落,它会从几行扩展以适合段落。
这是我目前得到的:
#commenttext {
width: 413px;
min-height: 22px;
max-height: 100%;
display: inline;
font-size: 11px;
color: #777777;
word-wrap: break-word;
font-family: "Open Sans", "Tahoma";
top: 7px;
position: relative;
left: 7px;
padding-left: 7px;
}
<form action="" method="POST">
<input type="text" id="commenttext">
</form>
但那只是一个普通的文本区域。
当我输入更多行时,如何让文本区域变得更高?我需要Javascript吗?
答案 0 :(得分:10)
以下是仅限CSS的解决方案:使用div
并将contenteditable
设置为true。
<div contenteditable="true"
style="width:200px;min-height:20px;border:1px solid #ccc;"></div>
有关示例,请参阅此JSFiddle。
修改强>
如果您希望能够提交此文本,则需要一些javascript才能将其放入input
字段。将其添加到您的表单:
<form onsubmit="document.getElementById('hidden_data').value=document.getElementById('showing_data').innerHTML;">
<input id="hidden_data" name="data" type="hidden"/>
<div id="showing_data" contenteditable="true"
style="width:200px;min-height:20px;border:1px solid #ccc;"></div>
</form>
这会将div
的内容放入隐藏的input
字段中,以便通过POST
将其提交给服务器。
有关示例,请参阅此(已更新)JSFiddle。
答案 1 :(得分:0)