rowspan 属性只写在要合并的起始单元格里,后续同列单元格必须跳过,否则会导致结构错乱;值为正整数,不能为0;跨行后对应位置不得出现td/th,列数按实际td数量自动对齐。

rowspan 属性写在哪个 <td> 里?
<p>只写在「要合并的起始单元格」里,不是每一行都写。这个单元格会向下占据 <code>rowspan 指定的行数,后续同列的 <td> 必须跳过——否则表格结构会错乱,浏览器可能自动补全或渲染异常。
<p>常见错误:在每行都加 <code>rowspan="2",结果第一行占两行,第二行又占两行,视觉上重叠或空白。
- 正确做法:
<td rowspan="3">姓名</td> 后,接下来两行同一列不再放 <td> 或 <code><th>
<li>如果该列后续某行需要内容,必须用 <code><td> 补位,但不能和 rowspan 起始单元格在同一列垂直对齐位置
<li>
<code>rowspan 值必须是正整数,rowspan="0" 无效(部分旧浏览器可能当 1 处理)
合并后下面的行怎么写?列数怎么算?
被跨过的行,对应列位置必须留空——不是写空字符串,而是根本不要出现那个 <td>。表格引擎靠列顺序自动对齐,插一个空 <code><td> 反而会把整行右移。
<p>示例:3 行 4 列表格,第一行第 2 列设 <code>rowspan="3",那么第二、三行的 HTML 中,<tr> 内只能有 3 个 <code><td>(跳过第 2 列):
<pre class="brush:php;toolbar:false;"><tr>
<td>A1</td>
<td rowspan="3">B1</td>
<td>C1</td>
<td>D1</td>
</tr><tr>
<td>A2</td>
<td>C2</td>
<td>D2</td>
</tr></pre>
<p>注意第二行没有「第 2 列的 <code><td>」,这才是对的。
<h3>和 <code>colspan 一起用会怎样?
<td rowspan="3">姓名</td> 后,接下来两行同一列不再放 <td> 或 <code><th>
<li>如果该列后续某行需要内容,必须用 <code><td> 补位,但不能和 rowspan 起始单元格在同一列垂直对齐位置
<li>
<code>rowspan 值必须是正整数,rowspan="0" 无效(部分旧浏览器可能当 1 处理)合并后下面的行怎么写?列数怎么算?
被跨过的行,对应列位置必须留空——不是写空字符串,而是根本不要出现那个 <td>。表格引擎靠列顺序自动对齐,插一个空 <code><td> 反而会把整行右移。
<p>示例:3 行 4 列表格,第一行第 2 列设 <code>rowspan="3",那么第二、三行的 HTML 中,<tr> 内只能有 3 个 <code><td>(跳过第 2 列):
<pre class="brush:php;toolbar:false;"><tr>
<td>A1</td>
<td rowspan="3">B1</td>
<td>C1</td>
<td>D1</td>
</tr><tr>
<td>A2</td>
<td>C2</td>
<td>D2</td>
</tr></pre>
<p>注意第二行没有「第 2 列的 <code><td>」,这才是对的。
<h3>和 <code>colspan 一起用会怎样?
可以共存,但必须确保总单元格数逻辑一致。比如一个单元格同时设 rowspan="2" 和 colspan="2",它就占据 2×2 区域,那它下方一行、右侧一列、右下角的位置都不能再出现独立单元格。
- 容易踩坑:先写
colspan再写rowspan,以为「覆盖更广」,其实两者是正交控制,互不替代 - 浏览器不会报错,但渲染错位时很难定位——建议先画草图,标出每个
<td> 的行列范围 <li>复杂合并建议用 CSS Grid 替代,HTML 表格语义更适合二维数据,不是布局工具</li> <h3>为什么 Chrome 显示正常但微信内置浏览器错位?</h3> <p>老版本 Android WebView(尤其微信 X5 内核)对 <code>rowspan解析有 bug:当表格嵌套、或存在空行/无内容单元格时,会误判行高或列偏移。- 临时修复:给所有
<td> 加 <code>style="vertical-align: top;",避免默认 baseline 对齐干扰跨行 - 强制触发重排:在 JS 中动态设置
table.style.display = 'block'; table.style.display = 'table';(慎用) - 真正可靠的方式是避免深度跨行——把多层 rowspan 拆成多个独立表格,用 CSS 控制间距
跨行合并本质是 HTML 表格模型的「声明式布局」,它依赖严格结构;一旦嵌套或样式干扰,就容易失守。写之前先数清楚行和列,比调样式更快。
- 临时修复:给所有
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











