如何让textarea的高度自适应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让textarea的高度自适应相关的知识,希望对你有一定的参考价值。

extarea文本域轻松实现高度自适应
demo演示地址:http://www.xuanfengge.com/demo/201308/textarea/demo1.html
因为textarea不支持自适应高度,就是定好高度或者是行数之后,超出部分就会显示滚动条,看起来不美观。
而用DIV来模拟时,首先遇到的问题是:div怎么实现输入功能?
可能我们还是第一次见到这个属性contenteditable,如一个普通的block元素上加个contenteditable="true"就实现编辑,出现光标了。如

<div contenteditable="true"></div>

contenteditable属性虽是HTML5里面的内容,但是IE似乎老早就支持此标签属性了。所以,兼容性方面还是不用太担心的。
CSS代码

.textarea

width:
400px;

min-height:
20px;

max-height:
300px;

_height:
120px;

margin-left:
auto;

margin-right:
auto;

padding:
3px;

outline:
0;

border:
1px
solid
#a0b3d6;

font-size:
12px;

line-height:
24px;

padding:
2px;

word-wrap:
break-word;

overflow-x:
hidden;

overflow-y:
auto;

border-color:
rgba(82,
168,
236,
0.8);

box-shadow:
inset
0
1px
3px
rgba(0,
0,
0,
0.1),
0
0
8px
rgba(82,
168,
236,
0.6);



HTML代码

<div class="textarea" contenteditable="true"><br /></div>

CSS代码中,因为IE6不支持min/max,所以做了hack,其他的也好理解。
参考技术A HTML网页中textarea的高度自适应怎么实现方法

textarea高度自适应问题

textarea中的文字如果过多,就会产生滚动条,一本分文本被遮盖住,不能看到所有的文本。

那么,如何才能让textarea的高度随输入内容多少,可以自动的改变高度呢?

解决思想:

1 利用contenteditable属性,让div变得可以编辑。

    优点:方便,简介

    缺点:提交数据不方便

2 利用js,动态改变textarea的高度

    优点:提交数据很方便

    缺点:要写好几段代码

我不禁提出质疑:在设计textarea这个标签的时候,专家们为何不给他一个可以高度自适应的属性呢?

谁能回答我?

以上是关于如何让textarea的高度自适应的主要内容,如果未能解决你的问题,请参考以下文章

textarea高度自适应问题

如何让textarea的高度自适应

如何让textarea随着内容自适应高度

jQuery让textarea自适应高度

textarea如何实现高度自适应?

textarea高度自适应