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

话很少说,直接上干货。web

方案一:spa

用 div 模拟 textarea, 高度自适应,而且有 placeholder 效果
(1)、使用 contenteditable 属性,可以让 div 具备编辑输入效果
(2)、模拟 placeholder 的提示效果,此处直接用 CSS 实现
复制代码

(3)、contenteditable 在IOS上有兼容性,虽然能聚焦,可是不能输入内容,此时须要借助属性 -webkit-user-select: text , 来解决这个兼容性
(4)、缺点:获取 div 文本的时候,内部会包含一些HTML标签,因此须要单独处理转译的数据,才能正常使用数据
复制代码

方案二:3d

用 div 来实现高度自适应,可是输入内容仍是再 textarea 标签里面
(1)、设置一个 div 与 textarea 同层级,外层包裹一个 div ,定位为 relative
(2)、textarea 绝对定位,宽度高度均为 100%,相对于父层 div 来讲
(3)、内部 div,设置为 relative, 在检测 textarea 的 onchange 事件的时候,把文本填充到内部 div 里面,以此来撑开父层 div 的高度和宽度
(4)、给内部 div 设置 不可见属性,visibility:hidden,这样 div 是看不见的,可是它的物理位置是存在的,因此可以撑开父层 div
(5)、该方案相对于方案一来讲,更简便和完美,尤为是须要获取输入内容的时候
复制代码

这两个办法,是我在开发中实际遇到的问题,因此如今分享出来,但愿对你们有帮助,若是你们还有更好的办法,请告诉我,你们一块儿勉励哟~~~~~
相关文章
相关标签/搜索