textarea文本框自适应高度

把全部问题都本身code一遍,那就不是问题 🐮

直接先上代码css

html部分 🍎

<div>
    <pre></pre>
    <textarea name="" id="" cols="30" rows="10"></textarea>
</div>
复制代码

css部分 🍇

div{
  position: relative;
  width: 30%;
  min-height: 100px;
  padding-top: 15px;  /*防止抖动*/
  box-sizing: border-box;
}
textarea{
  position: absolute;
  width: 100%;
  height: 100%;
  resize: none;
  left: 0;
  top: 0;
  overflow: hidden;
}
pre{
  display: block;
  visibility: hidden;
}
复制代码

js部分 🌵

let text = document.querySelector('textarea')
let pre = document.querySelector('pre')
text.onkeyup = function(){
  let value = this.value
  pre.innerText = value
}
复制代码

实现思路

使用子绝父相textarea相对于父元素div定位,用户输入的内容,利用keyup事件,同步到pre中,让pre的内容高度把div撑开,使其自适应高度。html

pre标签设置visibility: hidden;,不可见,但继续占有位置。给div设置padding-top: 15px;box-sizing: border-box;,目的是把pre标签顶开距离,由于输入同步到pre时,会改变其高度,会有抖动现象。前端

blog:gauhar.gitee.io,这是我博客地址,让咱们一块儿在前端道路上持续发胖吧,

相关文章
相关标签/搜索