CSS 实现自动调整 textarea 高度

CSS 实现自动调整 textarea 高度

💡 原文中文,约2100字,阅读约需5分钟。
📝

内容提要

本文介绍了如何通过 CSS 和少量 JavaScript 实现 textarea 高度自动调整。利用 grid 容器和隐藏的兄弟元素,textarea 的高度可根据输入内容动态变化。关键在于使用 data-replicated-value 属性同步内容,以确保高度一致,并设置兼容性样式以避免出现滑动条。

🎯

关键要点

  • 本文介绍如何通过 CSS 和少量 JavaScript 实现 textarea 高度自动调整。
  • 使用 grid 容器和隐藏的兄弟元素,textarea 的高度可根据输入内容动态变化。
  • 关键在于使用 data-replicated-value 属性同步内容,以确保高度一致。
  • 通过 onInput 事件监听用户输入,将内容保存到父元素的 data-replicated-value 属性。
  • CSS 样式中使用 ::after 伪类创建隐藏的兄弟元素,内容与 textarea 同步。
  • 设置 visibility 为 hidden 和 white-space 为 pre-wrap,以保持高度一致。
  • textarea 和隐藏元素放在同一个 grid 区域中,确保重叠显示。
  • 需要添加兼容性样式,如 resize: none 和 overflow: hidden,以避免滑动条。
  • content 后的空格用于触发换行符,确保文本框高度调整。
➡️

继续阅读