colspan="n"使单元格占据n列并跳过后续n-1个单元格,每行展开后的逻辑列数总和必须一致。浏览器按标签结构渲染,不自动修正错位。colspan值需为正整数,且不超过总列数,与table-layout配合时宽度由布局算法决定。该属性用于单元格跨列合并,需注意浏览器兼容性。
colspan="n" 的实质是让单元格占据 n 列位置,并跳过后续 n1 个单元格。关键在于,每行的总列数必须保持一致;浏览器只按标签结构渲染,不会自动帮你修正逻辑列数的错位。

长期稳定更新的攒劲资源: >>>点此立即查看<<<
许多人误以为 colspan 是“拉宽”单元格,实际上它是一种“占位+跳过”的机制。例如, 通常不是属性写错了,而是整行的“逻辑列数”没有对齐。浏览器只认结构,不会猜测你的意图。 单纯的 colspan 并不控制宽度,最终表现取决于表格布局算法。 真正困难的从来不是写对 colspan="3" 表示该 或 会占据自己的位置,同时跳过右边两个单元格的位置,后续的同级单元格自动右移。浏览器不会自动删除多余的 ,它只会按照你写的标签逐个渲染。
,这一行实际有 5 列(3+1+1)。标题 A B ,不能跟 3 个。
colspan="0" 被所有主流浏览器忽略,不要使用。为什么添加 colspan 后没有效果或出现错位
width 是否明显变宽;如果没有变化,说明被后续单元格挤回去了。 和 的列贡献:没有 colspan 的算 1,有 colspan="2" 的算 2,总和必须等于你设计的总列数(例如 5)。
col-span、colspan="2px" 或 colspan="two" —— 必须是纯数字字符串。表头使用了 colspan,tbody 里如何正确对应
和 不是独立的系统,它们共享同一套列坐标。表头合并了几列,数据行就需要按照展开后的列数来填写。
(逻辑列数 = 3),接着写 姓名 班级 (4 个 张三 李四 高三(1) 多余 )→ 第四列会右推,整行偏移。
的 colspan 值之和必须等于 3。
和 的 rowspan 更要小心: 意味着 第一行对应列必须留空,不能补写 。
colspan 与 CSS width、table-layout 如何配合
table-layout: auto 时,宽度由内容撑开,colspan 单元格可能比预期窄或宽。table-layout: fixed 时,列宽由第一行或 决定,colspan="3" 的宽度等于它所跨三列的宽度之和。width,在 fixed 模式下常被忽略;使用百分比时,width: 60% 表示占整个表格宽度的 60%,而不是三列宽度的 60%。colspan="2",而是确保每一行“展开后”的列总数完全一致——人脑容易漏算,比如第 3 行少删了一个 。调试时只能靠手数,或者用脚本验证: Array.from(tr.children).reduce((s, el) => s + (el.colSpan || 1), 0)。