テーブルはtableタグで作りますが、普通に作るとこのように列の幅は中身によって変わります。
See the Pen
Untitled by junpei (@junpei-sugiyama)
on CodePen.
今回は、左の列の幅は固定して、他の列の幅は均等にする方法を解説します。
(有料になっていたらすいません🙇♂️)
テーブルで左の列だけ幅を固定して他の幅は均等にする方法
まず、冒頭でご紹介したテーブルのコードはこちらになります。
<table>
<tr>
<th>タイトル</th>
<td>名前名前名前名前</td>
<td>名前</td>
<td>名前</td>
</tr>
<tr>
<th>タイトル</th>
<td>名前</td>
<td>名前名前</td>
<td>名前</td>
</tr>
<tr>
<th>タイトル</th>
<td>名前</td>
<td>名前</td>
<td>名前</td>
</tr>
</table>
table {
border: 1px solid #ccc;
border-collapse: collapse; /* 隙間をなくす */
margin-inline: auto;
margin-top: 20px;
max-width: 500px;
width: 100%;
}
table th,
table td {
border: 1px solid #ccc;
line-height: 1.5;
padding: 10px;
text-align: center; /* 左右中央寄せ */
vertical-align: middle; /* 上下中央寄せ */
}
table th {
background: #1cb4d3;
color: #fff;
}
そして、左の幅を固定、他の列の幅は均等にする場合は、以下のコードを追記します。
table {
table-layout: fixed; /* 列の幅を均等にする */
}
table th:first-of-type {
width: 70px; /* タイトル列の幅 */
}
デモはこちら。
See the Pen
Untitled by junpei (@junpei-sugiyama)
on CodePen.
タイトルの列だけ幅が狭く、他は全て均等になっています。
width: 70px;
を消せば、タイトルの列を含めて全て均等の幅になります。
See the Pen
Untitled by junpei (@junpei-sugiyama)
on CodePen.
まとめ
今回は、テーブルで左の列だけ幅を固定して、他の幅は均等にする方法を解説しました。
table-layout: fixed;
は知らない人も多いと思いますが、便利なプロパティなので覚えておくといいでしょう。
以上になります。