textarea是一个文本框,谷歌、IE、Opera默认显示两行文本,火狐默认显示3行文本,行数超过两行是会出现滚动条,可以自己设定设定一些行数来进行强制多少行进行显示。
例如:
<textarea name="text" style="width: 300px;">textarea是一个文本框,谷歌、IE、Opera默认显示两行文本,火狐默认显示3行文本,行数超过两行是会出现滚动条,可以自己设定设定一些行数来进行强制多少行进行显示。textarea是一个文本框,谷歌、IE、Opera默认显示两行文本,火狐默认显示3行文本,行数超过两行是会出现滚动条,可以自己设定设定一些行数来进行强制多少行进行显示。textarea是一个文本框,谷歌、IE、Opera默认显示两行文本,火狐默认显示3行文本,行数超过两行是会出现滚动条,可以自己设定设定一些行数来进行强制多少行进行显示。textarea是一个文本框,谷歌、IE、Opera默认显示两行文本,火狐默认显示3行文本,行数超过两行是会出现滚动条,可以自己设定设定一些行数来进行强制多少行进行显示。</textarea>
显示结果如下,依次是IE、谷歌、Opera和火狐
如下是自己设定行数来进行强制显示
<textarea name="text" style="width: 300px;" rows="4">textarea是一个文本框,谷歌、IE、Opera默认显示两行文本,火狐默认显示3行文本,行数超过两行是会出现滚动条,可以自己设定设定一些行数来进行强制多少行进行显示。textarea是一个文本框,谷歌、IE、Opera默认显示两行文本,火狐默认显示3行文本,行数超过两行是会出现滚动条,可以自己设定设定一些行数来进行强制多少行进行显示。textarea是一个文本框,谷歌、IE、Opera默认显示两行文本,火狐默认显示3行文本,行数超过两行是会出现滚动条,可以自己设定设定一些行数来进行强制多少行进行显示。textarea是一个文本框,谷歌、IE、Opera默认显示两行文本,火狐默认显示3行文本,行数超过两行是会出现滚动条,可以自己设定设定一些行数来进行强制多少行进行显示。</textarea>
如下是显示结果,依次是IE、谷歌、Opera和火狐
可以看到火狐总是比其他浏览器多显示一行内容(猜测估计火狐的行数是按照01234来算的,哈哈)。
那有没有方法在初始化的时候让textarea的高度自适应呢,因为textarea是整行显示,很有可能会忽略未显示出来的内容。
我们来看下面这一张图:
其中scrollHeight代表的是一个DOM元素的全文高度,利用此我们可以来实现textarea的高度自适应,方法如下:
<textarea name="text" style="width: 300px;">textarea是一个文本框,谷歌、IE、Opera默认显示两行文本,火狐默认显示3行文本,行数超过两行是会出现滚动条,可以自己设定设定一些行数来进行强制多少行进行显示。textarea是一个文本框,谷歌、IE、Opera默认显示两行文本,火狐默认显示3行文本,行数超过两行是会出现滚动条,可以自己设定设定一些行数来进行强制多少行进行显示。textarea是一个文本框,谷歌、IE、Opera默认显示两行文本,火狐默认显示3行文本,行数超过两行是会出现滚动条,可以自己设定设定一些行数来进行强制多少行进行显示。textarea是一个文本框,谷歌、IE、Opera默认显示两行文本,火狐默认显示3行文本,行数超过两行是会出现滚动条,可以自己设定设定一些行数来进行强制多少行进行显示。</textarea>
<script>
$.each($("textarea"), function(i, n){
$(n).css("height", n.scrollHeight + "px");
})
</script>
下面我们再来看一下效果,依次是IE、谷歌、Opera和火狐
完美的实现了textarea的高度以内容的高度来显示,不会造成内容忽略。而且使用起来相当简单,只需要在其js中添加下面这段代码就全部搞定了。
$.each($("textarea"), function(i, n){
$(n).css("height", n.scrollHeight + "px");
})