提出问题:作为多行文本域功能来讲,textarea满足了我们大部分的需求。然而,textarea有一个不足就是不能像普通div标签一样高度可以跟随内容自适应。textarea总是很自信地显摆它的滚动条,高度固执地岿然不动。所以,有时候,为了增加交互体验想让文本域高度自适应的时候,就会遇到麻烦。
解决方法:利用div模拟textarea (contenteditable=”true” + word-wrap:break-word;)
(自己总结的最简单的方法)
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
textarea,.textarea{
width:200px;
min-height:20px;
word-wrap:break-word;/*为了在ie和FF顺利换行,加上word-wrap。*/
overflow-x:hidden;
overflow-y: auto; /*visible (默认), hidden, scroll, 和auto*/
}
div[contenteditable]{border:1px solid #a0b3d6;}
</style>
</head>
<body>
<div contenteditable="true" class="textarea"></div>
<hr/>
<textarea name="" ></textarea>
</body>
</html>
另见网上的写法,考虑各个浏览器的样式一致性
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
.test_box {
width: 100px;
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;
word-wrap: break-word;
text-align: justify;
overflow-x: hidden;
overflow-y: auto;
-webkit-user-modify: read-write-plaintext-only;
}
</style>
</head>
<body>
<div class="test_box" contenteditable="true"><br /></div>
</body>
</html>
还有,就是利用js的方法来实现比较复杂,这里不推荐!
今天的文章textarea 高度自适应分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/65471.html