文本域textarea宽度和高度width及height自动适应的方法实例1:
textarea文本域宽度和高度(width、height)自动适应变化处理
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>div模拟textarea文本域轻松实现高度自适应</title> <style> h2{ text-align: center; margin:50px auto; } .test_box { 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); } </style> </head> <body> <h2>div模拟textarea文本域轻松实现高度自适应</h2> <div class="test_box" contenteditable="true"><br /></div> </body> </html>
文本域textarea宽度和高度width及height自动适应的方法实例2:
<HTML> <HEAD> <TITLE>textarea宽度、高度自动适应处理方法</TITLE> <!-- 控制宽度的自动适应 --> <style type="text/css"> .comments { width:100%;/*自动适应父布局宽度*/ overflow :auto; word-break :break-all; /*在ie中解决断行问题(防止自动变为在一行显示,主要解决ie兼容问题,ie8中当设宽度为100%时,文本域类容超过一行时, 当我们双击文本内容就会自动变为一行显示,所以只能用ie的专有断行 属性 “word-break或 word-wrap ”控制其断行)*/ } </style> </HEAD> <BODY> <FORM METHOD=POST ACTION = " "> <!-- 主要控制高度的自动适应 --> <!-- 第一个是普通textarea --> <textarea class="comments" rows="10" cols="10"> </textarea> <!-- 以下两种方式都可以解决textarea行高自动适应类容的高度 --> <textarea class="comments" rows=1 name=s1 cols=27 onpropertychange= "this.style.posHeight=this.scrollHeight "></textarea> <textarea class="comments" style="height:expression((this.scrollHeight>150)?'150px':(this.scrollHeight+5)+'px');overflow:auto;"></textarea> </FORM> </BODY> </HTML>
关于textarea文本域的高度除了设置固定高度外,不会随着文本内容增加而高度自适应的问题.
解决这个问题的方法我们可以利用div模拟textarea的方式
<div id="textarea" contenteditable="true" placeholder="请输入文字,不得少于100字"></div>
contenteditable="true"这个属性实现了div文本输入的功能
css上给div的高度设置成auto 这样高度就实现了自适应
当然用div模拟textarea时,我们没办法使用placeholder的属性.
当然这个一度让我烦躁的缺点也是有解决的办法的.
给div添加 placeholder="xxxx" 的属性
同时为div设置css,代码如下
.textarea{ box-sizing: border-box; width: 100%; height: auto; padding: 5px; border:1px solid #ccc; } .textarea:empty:before{ content: attr(placeholder); color:#bbb; } .textarea:focus:before{ content:none; }
大功告成!
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛