You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bootstrap中实现textarea行数随内容自适应扩展

实现textarea随内容自动撑开高度的两种方案

方案1:CSS原生实现(推荐,代码量最少)

直接给目标textarea添加如下样式即可,不需要额外JS逻辑,支持高度随内容增减自动调整:

#exampleFormControlTextarea1 {
  /* 核心属性,让textarea高度自适应内容 */
  field-sizing: content;
  /* 保留默认3行的最小高度,适配Bootstrap输入框的内边距 */
  min-height: calc(3lh + 2 * var(--bs-input-padding-y));
  /* 可选:不需要拖拽调整尺寸可开启,也可保留原生拖拽功能 */
  resize: none;
}

方案2:JS实现(全浏览器兼容)

如果需要兼容不支持field-sizing属性的旧版浏览器,用JS逻辑动态调整高度,同时适配打印场景:

const textarea = document.getElementById('exampleFormControlTextarea1');
// 监听输入事件动态调整高度
textarea.addEventListener('input', function() {
  // 先重置高度,保证内容减少时高度也会收缩
  this.style.height = 'auto';
  this.style.height = this.scrollHeight + 'px';
});
// 页面加载时如果有默认内容,主动触发一次高度调整
window.addEventListener('load', () => {
  textarea.dispatchEvent(new Event('input'));
});
// 打印前主动调整高度,避免导出PDF时内容显示不全
window.addEventListener('beforeprint', () => {
  textarea.dispatchEvent(new Event('input'));
});

两种方案都可以保留textarea的原生表单提交能力,不会影响后续的打印、PDF导出功能,内容不会因为滚动条被截断。

内容的提问来源于stack exchange,提问作者Nisarg Kudgunti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:12:00