rows和cols是基于默认等宽字体下字符数的估算单位,非像素值;rows表示约可显示的行数,cols表示约可容纳的英文字符宽度,实际尺寸受字体、CSS等影响,仅作语义fallback。
直接在 <textarea> 标签里写 rows 和 cols 属性,就能设置文本域的初始显示行数和列宽——但它们不是像素值,而是基于默认等宽字体下字符数量的估算。
它们不等于高度或宽度的像素值,也不代表最大输入字数:
width、height、min-height,就会被覆盖基础写法很简单,但要注意语义与表现分离:
<textarea rows="4" cols="50"></textarea>
rows="4" 和 cols="30"
cols="1000" 或 rows="100",在 IE 或某些移动端易错位或触发异常滚动条font-family: "PingFang SC"),cols 就基本失去参考意义,此时应完全依赖 CSS 控制宽度纯靠 rows/cols 控制尺寸,在现代项目中容易翻车:
font-size: 18px 后,rows="4" 可能只剩 2 行可见内容cols 常被忽略,文本域被压缩成一条线min-height + resize 或 JS 动态适配width: 100% 或具体像素设宽;用 min-height: 80px; max-height: 200px; 设高;加 resize: vertical; 允许拉伸;别忘 box-sizing: border-box;
针对 IE11 或更老环境(不支持 min-height 或 resize):
rows 设为略大于常用行数(如常用 3–4 行,设 rows="5")cols 可参考实测值:cols="50" 在多数系统下视觉宽度约 300–400pxoverflow: auto; 防止内容溢出不可见resize: none),务必确保 min-height 足够,否则用户看不到完整输入内容