刚做了个项目,项目有个需求,textarea框需要自适应高度,使用textarea标签的时候试了min-height和max-height,都不行,之后在网上查了一下资料,其他可以使用css3的属性,一个新的属性,user-modify,此属性的意思是div可以编辑状态
所以,可以说,此textarea非彼textarea,但同样也是可输入状态
因为我的项目是vue项目,所以代码方面都是vue
<div contenteditable="true" data-text="喜欢就评论" ref="myInput" autofocus @blur="anBlur" @focus="anFocus" class="textarea">{{text}}</div>
js
// 失去焦点
anBlur() {
console.log("无焦点");
},
// 有焦点
anFocus() {
console.log("有焦点");
}
css
.textarea{
-webkit-user-modify: read-write-plaintext-only;
min-height: 0.906666rem;
max-height: 1.813333rem;
overflow-x: hidden;
overflow-y: auto;
}
[contentEditable=true]:empty:not(:focus):before {
content: attr(data-text);
color: #D6D9E0;
}