HTMLのテーブルのヘッダーを縦に表示する方法

HTMLのテーブルのヘッダーを縦に表示する方法

HTMLのテーブルのヘッダーを縦に表示する方法について解説します。
テーブルのヘッダーを縦に表示するためには、CSSを使用して、テーブルのセル内のテキストを回転させる方法が一般的です。
以下では、HTMLとCSSを別ファイルに分けて、テーブルのヘッダーを縦に表示する具体的な方法を示します。

HTMLファイル(index.html)

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>縦ヘッダーのテーブル</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <table class="test-table">
    <thead>
      <tr>
        <th class="test-header">ヘッダー1</th>
        <th class="test-header">ヘッダー2</th>
        <th class="test-header">ヘッダー3</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="test-cell">データ1</td>
        <td class="test-cell">データ2</td>
        <td class="test-cell">データ3</td>
      </tr>
      <tr>
        <td class="test-cell">データ4</td>
        <td class="test-cell">データ5</td>
        <td class="test-cell">データ6</td>
      </tr>
    </tbody>
  </table>
</body>
</html>

CSSファイル(styles.css)

.test-table {
  border-collapse: collapse;
  width: 100%;
}

.test-table, .test-table th, .test-table td {
  border: 1px solid #ddd;
}

.test-header {
  background-color: #f4f4f4;
  text-align: center;
  padding: 8px;
  width: 100px; /* 固定幅での調整が可能 */
  height: 200px; /* ヘッダーの高さを設定 */
  transform: rotate(-90deg);
  transform-origin: left bottom;
  white-space: nowrap; /* テキストの折り返しを防ぐ */
}

.test-cell {
  padding: 8px;
  text-align: center;
}

解説

1. HTML構造:

  • tableタグでテーブルを定義し、thead内にtrタグを使用してヘッダー行を作成します。
  • thタグを使用してヘッダーセルを作成し、tbody内にデータ行を追加します。

各セルにはtest-headerやtest-cellというクラスを付けてスタイルを適用します。

2. CSSスタイル:

  • test-tableクラスに対して、border-collapse: collapse;を指定して、テーブルの境界線を重ね合わせる設定をしています。

テーブルの幅を100%に設定して、親要素の幅に合わせるようにしています。

  • test-headerクラスでは、transformプロパティを使用して、テキストを-90度回転させています。

transform-originを使用して、回転の基準点を左下に設定し、テキストが正しい位置に配置されるようにしています。

  • white-space: nowrap;を設定することで、テキストがセル内で折り返さないようにし、回転後もテキストが適切に表示されるようにしています。

この方法では、ヘッダーを縦に表示することができますが、デザインによっては、回転させたテキストがテーブルの幅に収まらない場合もあります。
その場合は、widthやheightを調整することで、レイアウトを調整できます。

このように、CSSのtransformプロパティを使用して、HTMLテーブルのヘッダーを縦に表示することができます。
デザインのニーズに合わせて、スタイルを調整してみてください。