CSS Web制作

【CSS】テーブルで左の列だけ幅を固定して他の幅は均等にする方法

※ 当サイトではアフィリエイト広告を利用しています

テーブルの左だけ幅は固定して、他の列の幅は均等にする方法ない?

テーブルはtableタグで作りますが、普通に作るとこのように列の幅は中身によって変わります。

See the Pen
Untitled
by junpei (@junpei-sugiyama)
on CodePen.

今回は、左の列の幅は固定して、他の列の幅は均等にする方法を解説します。

じゅんぺいブログは、Web制作コーディングWordPress制作)の技術記事を中心に、約500記事公開しています。ぜひ他の記事も参考にしてみてください!
完全無料のプログラミングスクール『ZeroPlus Gate』
30日間でWeb制作を学べる無料のプログラミングスクールがこちら
いきなり数十万するプログラミングスクールは厳しい・・・という人のお試しに最適です。
現在は無料ですがいつ有料になるか分からないので、気になる方はお早めに👇
(有料になっていたらすいません🙇‍♂️)

\ 完全無料 /

ZeroPlus Gate公式サイト

毎日先着制!

テーブルで左の列だけ幅を固定して他の幅は均等にする方法

まず、冒頭でご紹介したテーブルのコードはこちらになります。

<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;は知らない人も多いと思いますが、便利なプロパティなので覚えておくといいでしょう。

以上になります。

この記事が役に立ったと思ったら、シェアボタンからX(旧Twitter)などにシェアすると、いいねされてフォロワーが増えたりすることがあるよ!

 

  • この記事を書いた人

じゅんぺい

37歳からWeb制作とブログ開始。Web制作歴5年目でコーディングとWordPressオリジナルテーマ制作が中心。これまで120件以上を納品。当ブログ月間最高15万PVで、370記事以上はWeb制作の技術記事。コンテンツ販売→累計売上1200万円&1500部超え。X(旧Twitter)フォロワー7200人以上。2024年3月からブログの経験を活かしてライターとしても活動を開始。

-CSS, Web制作