rowspan的作用是让单元格纵向跨行,需手动跳过后续行对应列位置,否则表格错位;其值须为正整数,跨行超限时浏览器按剩余行数渲染但语义损坏。

rowspan 的作用是让一个 <td> 或 <code><th> 单元格纵向跨越多行,但它不是“自动合并”,而是通过减少后续行中对应位置的单元格来实现视觉上的跨行效果——理解这点,才能避免表格错乱。
<h3>为什么设置了 <code>rowspan 表格却错位了
最常见的原因是:后续行中未跳过已被跨占的列位置,导致浏览器强行补全单元格,破坏结构。
- 比如第一行
<td rowspan="3">A</td> <td>B</td>,那么第二、三行必须只写一个<td>(对应 B 列),不能写两个 <li> <code>rowspan值必须是正整数,rowspan="0"无效,部分浏览器会忽略或当 1 处理 - 如果跨行数超出实际行数(如
rowspan="5"但只剩 2 行),浏览器会按剩余行数渲染,但语义已损坏
如何正确写出带 rowspan 的三行两列表格
假设想让左上角单元格跨 3 行,右列每行内容不同:
| 跨三行 | 第一行右 |
| 第二行右 | |
| 第三行右 |
注意:第 2、3 行的 <tr> 中**没有左列的 <code><td>**,这是关键。浏览器不会“自动对齐”,它只是按 HTML 结构逐行解析。
<h3>
<code>rowspan 和 colspan 能一起用吗
可以,但叠加后逻辑更易出错。例如 <td rowspan="2" colspan="2"> 会同时占据 2 行 × 2 列共 4 个单元格的位置。
<ul>
<li>后续两行中,对应这 2 列的位置都必须跳过,否则结构断裂</li>
<li>建议先画草图标出行列坐标,再写 HTML;复杂布局优先考虑 CSS Grid 或 Flex,语义更清晰</li>
<li>
<code>rowspan 是 HTML 表格语义的一部分,用于数据表(如成绩单、配置项列表),不推荐用于页面整体布局
真正难的不是写对 rowspan,而是当表格动态生成(比如从 JSON 渲染)时,要提前算好每行该渲染几个单元格——漏掉一次跳过,整张表就偏了。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











