比較記事や料金表など、情報を整理して伝えたいときに便利なのがテーブル(表)です。ただ、テーブルが横長になると「どの項目の情報か分かりづらい。」こともあります。

そこで役立つのが、一部のセル(見出しなど)を固定表示できるテーブルです。スクロールしても見出しが固定されているので、情報が格段に読みやすくなります。

この記事では、コピペで使える「セルを固定表示するテーブル」のつくり方をご紹介します。HTMLとCSSを少し調整するだけで、すぐに導入できます。

WordPressテーマ「PANDORA」
WordPressテーマ「PANDORA」
レイアウト自由自在なブログ・メディアを構築。

セルを固定表示するテーブルとは?

次のようなテーブルのことです。左側の「見出しのセル」を固定しているため、他の項目をスクロールして確認できます。

TCDのWordPressテーマをテーブルにまとめた例

テーマ名 コンセプト リリース日 価格(税込) 解説記事 ダウンロード
PANDORA ブログ・メディア 2025-05-21 ¥41,800 解説記事 公式ページ
AIDER 士業・コーポレートサイト 2025-04-30 ¥40,590 解説記事 公式ページ
QUALIA ヨガ・ピラティススタジオ 2025-04-10 ¥38,500 解説記事 公式ページ

複数の商品・サービスを紹介するまとめ記事や料金表、読者に比較・検討を促す記事と相性がいいのが、こういったテーブルです。項目が多いテーブルでも端までスクロールする必要がなく、どの商品についての情報なのか一目瞭然です。

上記テーブルのように、行ごとの背景色を交互に変更しておくと、見間違いも減らせるのでオススメです。

つくり方

まずは、通常のテーブルをつくってください。CSSで調整するので、HTMLはほぼ変更しません。先ほどのテーブルのHTMLとCSSをそれぞれ記載しておきます。コピペしてご活用いただけます。

HTML

通常のテーブルに手を加えるのは、以下2点のみです。

  • テーブル全体を、クラス名(table-scroll)をつけたdivタグで囲む。
  • 固定したいセル(thタグ)部分に、クラス名(sticky)をつける
<div class="table-scroll">
  <table>
    <tr>
      <th class="sticky"><strong>テーマ名</strong></th>
      <td><strong>コンセプト</strong></td>
      <td><strong>リリース日</strong></td>
      <td><strong>価格(税込)</strong></td>
      <td><strong>解説記事</strong></td>
      <td><strong>ダウンロード</strong></td>
    </tr>
    <tr>
      <th class="sticky"><a href="https://demo.tcd-theme.com/tcd116/" target="_blank">PANDORA</a></th>
      <td>ブログ・メディア</td>
      <td>2025-05-21</td>
      <td>¥41,800</td>
      <td><a href="https://tcd-theme.com/2025/05/pandora.html">解説記事</a></td>
      <td><a href="https://tcd-theme.com/tcd116/" target="_blank">公式ページ</a></td>
    </tr>
    <tr>
      <th class="sticky"><a href="https://demo.tcd-theme.com/tcd115/" target="_blank">AIDER</a></th>
      <td>士業・コーポレートサイト</td>
      <td>2025-04-30</td>
      <td>¥40,590</td>
      <td><a href="https://tcd-theme.com/2025/04/aider.html">解説記事</a></td>
      <td><a href="https://tcd-theme.com/tcd115/" target="_blank">公式ページ</a></td>
    </tr>
    <tr>
      <th class="sticky"><a href="https://demo.tcd-theme.com/tcd114/" target="_blank">QUALIA</a></th>
      <td>ヨガ・ピラティススタジオ</td>
      <td>2025-04-10</td>
      <td>¥38,500</td>
      <td><a href="https://tcd-theme.com/2025/04/qualia.html">解説記事</a></td>
      <td><a href="https://tcd-theme.com/tcd114/" target="_blank">公式ページ</a></td>
    </tr>
  </table>
</div>

CSS

CSSは多いですが、初心者の方はまずはコピペで利用してみてください。それぞれ役割を記載していますので、適宜変更してもOKです。下記記述にはスマホで見た際のスタイル調整も含まれています。

.table-scroll {
  overflow-x: auto; /* 横スクロールを許可 */
}

.table-scroll table {
  width: 100%;        /* 親要素幅に合わせる */
  min-width: 1000px;  /* 最小幅を1000pxに固定 */
  border-collapse: collapse; /* 境界線を重ねて1本に */
  table-layout: fixed; /* セル幅を固定してレイアウト*/
}

/* 共通セル */
.table-scroll th,
.table-scroll td {
  padding: 15px;          /* セル内余白 */
  border: 1px solid #ccc; /* 薄いグレーの境界線 */
  white-space: nowrap;    /* テキスト改行禁止 */
  width: 200px;           /* ベースのセル幅 */
}

/* 固定セル */
.table-scroll th.sticky {
  position: sticky;      /* スクロールしても固定 */
  left: 0;               /* 左端に固定 */
  top: 0;                /* 上端に固定 */
  background-color: #eee; /* 薄いグレー背景 */
  border-left: none;     /* 左境界線は消す */
  border-right: none;    /* 右境界線も消す(二重線用に) */
  width: 60px;          /* 固定列の幅 */
  z-index: 2;            /* 他セルより前面に表示 */
}

/* セル幅調整 */
.table-scroll td:nth-child(2) { width: 80px; }
.table-scroll td:nth-child(3) { width: 50px; }
.table-scroll td:nth-child(4) { width: 50px; }
.table-scroll td:nth-child(5) { width: 50px; }
.table-scroll td:nth-child(6) { width: 50px; }

/* 交互に背景色をつけて見やすく */
.table-scroll table tr:nth-child(even) td,
.table-scroll table tr:nth-child(even) th.sticky {
  background-color: #fafafa; /* 偶数行の背景 */
}

.table-scroll table tr:nth-child(odd) td,
.table-scroll table tr:nth-child(odd) th.sticky {
  background-color: #ffffff; /* 奇数行の背景 */
}

/* 固定セルの右端に二重線を表示する装飾 */
.table-scroll th.sticky::before {
  content: "";                      /* 疑似要素の生成 */
  position: absolute;               /* 親セル内に絶対配置 */
  top: 0; left: 0;                 /* 左上を基準に */
  width: 100%; height: 100%;       /* セル全体を覆うサイズ */
  border-left: 1px solid #ccc;     /* 左側に細い線 */
  border-right: 3px double #aaa;   /* 右側に太い二重線 */
  background: #eee;                /* 背景色で文字の透け防止 */
  z-index: -1;                    /* 本文の背面に配置 */
  box-sizing: content-box;         /* 境界線を正確に描画 */
}

/* すべてのセルの文字を中央揃え */
.table-scroll th,
.table-scroll td {
  text-align: center;
}

/* スマホ時のスタイル調整 */
@media screen and (max-width: 768px) {
  /* 固定セル(左端の列)幅を狭く */
  .table-scroll th.sticky {
    width: 30px;
  }
/* その他セル幅 */
  .table-scroll td:nth-child(2) {
    width: 40px;
  }
  .table-scroll td:nth-child(3),
  .table-scroll td:nth-child(4),
  .table-scroll td:nth-child(5), 
  .table-scroll td:nth-child(6){
    width: 30px;
  }
}

カスタマイズ方法

テーブルに入れる内容によって、さまざまな微調整が必要になるケースがあります。

「行ごとに背景色を変更したい。」
「セル内の文字の配置や、セル幅を変えたい。」
「スマホでの見え方も調整したい。」

という方は、下記を参考にCSSを編集してみてください。

行ごとに背景色を変更する

特定の行に背景色をつけて、見やすさや区切りを強調したいときは、以下のように記述します。「#fafafa」の箇所に色コードを記載します。

以下の記述は、偶数行に色がつくので、背景色が交互に変わる指定方法になります。

/* 偶数行の背景色を薄いグレーに */
.table-scroll tr:nth-child(even) td,
.table-scroll tr:nth-child(even) th.sticky {
  background-color: #fafafa;

セル内の文字の配置を変える

文字を左寄せ・右寄せ・中央寄せに変更できます。内容によっては、すべて中央寄せにした方が綺麗に見えることもあります。

/* すべて中央寄せ(初期設定) */
.table-scroll th,
.table-scroll td {
  text-align: center;
}

/* 4列目のみ右寄せ */
.table-scroll td:nth-child(4) {
  text-align: right;
}

セルの幅を調整する

列ごとに幅を指定してテーブルを整えたいときは、以下のように編集します。セルの内容が短いのに、余白が広すぎると不細工ですので、こういった調整もおすすめです。

/* 固定セルの幅 */
.table-scroll th.sticky {
  width: 120px;
}

/* 2列目の幅を200pxに */
.table-scroll td:nth-child(2) {
  width: 200px;
}

スマホでの見え方を調整する

画面幅が狭いスマホでは、セル幅を変更して見やすく調整するのもいいですね。スマホで閲覧するユーザーが主流なので、必ず調整しておくのがオススメです。

@media screen and (max-width: 768px) {
  /* 固定セル(左端の列)幅を狭く */
  .table-scroll th.sticky {
    width: 30px;
  }
  /* その他セル幅 */
  .table-scroll td:nth-child(2) {
    width: 40px;
  }
  .table-scroll td:nth-child(3),
  .table-scroll td:nth-child(4),
  .table-scroll td:nth-child(5), 
  .table-scroll td:nth-child(6){
    width: 30px;
  }
}

TCDテーマでテーブルを使うコツ

TCDテーマユーザーの方は、テーブルのHTML,CSSを登録しておけます。都度コピペする手間がなく、再利用や使い回し時に便利です。

TCDオリジナルの無料プラグイン「TCDクラシックエディタ」に対応しているテーマであれば、TCDクラシックエディタ > クイックタグから「カスタムタグ」を追加して、HTMLとCSSを登録しておけます。

TCDクラシックエディタのカスタムタグ

これで「セル固定テーブル」などと登録しておけば、記事制作時にワンタッチで呼び出すことが可能です。まとめ記事や比較記事を頻繁に書く方は、ぜひこちらの機能をご活用ください。

TCDクラシックエディタ

まとめ

今回は、「一部のセルを固定表示するテーブル」のつくり方をご紹介しました。

表が横に長くなっても、見出しセルを固定しておけば「どの項目の情報か分からない」といったストレスを減らせます。比較記事や料金表など、複数の情報を並べるコンテンツと相性が抜群です。

HTMLとCSSのコピペだけで実現できますし、読者にとって見やすいテーブルなので、ぜひ今後の記事作成に取り入れてみてください。

テーブルに関する記事
世界最高品質のデザインの
WordPressテーマ集
WordPressテーマ「REHUB」
WordPressテーマ「REHUB」
クチコミ評価サイトがつくれる高機能テーマ。
WordPressテーマ「RIKYU」
WordPressテーマ「RIKYU」
あらゆるジャンルのネットショップを構築。
WordPressテーマ「GAIA」
WordPressテーマ「GAIA」
高機能なイベントカレンダーを搭載。
WordPressテーマ「HORIZON」
WordPressテーマ「HORIZON」
横スクロールデザインの個性派ギャラリー。