tableのセルを横につなげるにはcolspan、縦につなげるにはrowspan属性を<td>や<th>に付け、結合するセル数を指定します。
セル結合はcolspan・rowspanで作る
セル結合の方法は2つだけです。横方向の結合はcolspan="つなげる列数"、縦方向の結合はrowspan="つなげる行数"を、結合の起点になるセルに書きます。
結合した分だけ、重なる位置にあった<td>は削除します。HTMLにはExcelのような結合ボタンはなく、属性で1つのセルが占める範囲を広げる仕組みです。
セル結合の書き方 - 横結合・縦結合のコピペ例
横結合と縦結合の、そのまま使える最小例です。罫線がないと結合が見えないため、サンプルには最小限のCSSを含めています。
colspanで横に結合する
1行目の見出しセルを2列分に広げる例です。
<style>
table { border-collapse: collapse; }
th, td { border: 1px solid #888; padding: 4px 12px; }
</style>
<table>
<tr>
<th colspan="2">上期の売上</th>
</tr>
<tr>
<td>4月:100万円</td>
<td>5月:120万円</td>
</tr>
</table>
colspan="2"を付けたセルが2列分の幅に広がるため、1行目に書くセルは1つだけです。2行目は通常どおり2つのセルを書きます。
rowspanで縦に結合する
左端の見出しセルを2行分に広げる例です。
<style>
table { border-collapse: collapse; }
th, td { border: 1px solid #888; padding: 4px 12px; }
</style>
<table>
<tr>
<th rowspan="2">午前</th>
<td>9:00 朝礼</td>
</tr>
<tr>
<td>10:00 会議</td>
</tr>
</table>
rowspan="2"を付けたセルが2行目まで縦に伸びます。そのため2行目では左端のセルを書かず、残りのセルだけを書きます。
セル結合 - ずれる・崩れる時の対処
表がずれる原因は、ほとんどの場合、各行のセル数の合計が合っていないことです。まず次の3点を確認してください。
- 結合で不要になったtdを削除したか
- colspan・rowspanの数値が実際の列数・行数と合っているか
- rowspanがthead・tbodyの境界をまたいでいないか
各行の「セル数+結合で広がった分」が全行で同じ列数になれば、表は崩れません。なおrowspanによる結合は、仕様上thead・tbody・tfootといった行グループを越えて広げられません。
HTMLのtableでセルを結合する方法に関するよくある質問
colspanとrowspanは同時に使えますか?
使えます。1つのセルに両方を指定すると、縦横に広がったセルを作れます。その分、重なる位置のセルはすべて削除します。
結合できる数に上限はありますか?
HTML Living Standardでは、colspanは1〜1000の範囲と定められています。通常の表で上限に達することはまずありません。
結合を解除するにはどうすればよいですか?
colspan・rowspan属性を削除し、結合時に削っていたtdを元の位置に書き戻します。
実務に直結するIT・DX研修を、あなたの組織に。
CodeCampは、企業の課題や育成目標に合わせて、 Web開発・プログラミング・生成AI活用・DX人材育成などの研修を設計・提供しています。