textarea必须嵌套在或内,不可直接置于下;否则浏览器自动移出导致DOM失效、样式丢失、提交为空。

直接在 这是最常被忽略的结构前提。如果写成: 浏览器会自动把 监听 表格本身设置 真正麻烦的从来不是怎么让 里放 就行,但“可调整大小”不是默认安全行为——浏览器允许拖拽,但表格布局、CSS 覆盖、移动端兼容性会让它失效或失控。textarea 必须放在
或
内,不能放在
下
<tr><textarea name="note"></textarea></tr>
移出 ,导致 DOM 找不到、样式不生效、提交时字段为空。正确写法是: <tr>
<td><textarea name="note"></textarea></td>
</tr>
往往被包裹在 textarea
name 属性,漏写会导致后端收不到值resize: none 不生效?先查 overflow 和选择器权重
resize: none 在 上写无效,90% 是因为 overflow 没配对。CSS 规范强制要求:只有当 overflow 为 auto、hidden 或 scroll 时,resize 才起作用;而 默认是 overflow: visible,整条声明会被浏览器静默丢弃。
textarea { resize: none; overflow: auto; }
!important,Ant Design 的类名是 .el-textarea__inner,直接写 textarea { ... } 不匹配resize,看最终值是不是 none
自适应高度在表格里很脆弱,慎用 scrollHeight
input 事件 + scrollHeight 是常见方案,但在表格中容易崩:const el = document.querySelector('td textarea');
el.addEventListener('input', () => {
el.style.height = 'auto';
el.style.height = el.scrollHeight + 'px';
});
设了 max-height 或 overflow: hidden,撑高会被剪裁,内容看不见
scrollHeight 返回值不准,可能偏小,换行后高度卡住 时min-height + max-height + overflow-y: auto,放弃“完全贴合”,换布局稳定字体和尺寸控制要单独作用于 textarea,别靠 table 继承
font-family 或 font-size 对 无效,它有自己的默认等宽字体和用户代理样式。必须显式定义:
em 或 rem 单位,比如 font-size: 0.875rem,适配缩放和移动端box-sizing: border-box,避免 padding 和 border 导致宽度超限width: 100% 可靠,但高度别只写 height: 100% —— 它依赖父元素有明确高度,而 默认是 height: auto,结果往往为 0
加 class,例如 ,再写 .table-textarea { font-family: system-ui, sans-serif; }
变大,而是它变大之后,整张表还稳不稳——列宽突变、行高错位、移动端滚动异常,这些问题比功能实现更消耗调试时间。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











