【CSS】テーブルを横スクロールさせる方法

ウェブサイトでデータを表示する際、テーブルは非常に便利です。しかし、特にカラム数が多い場合、テーブルが画面幅を超えてしまうことがあります。このような場合、テーブルを横スクロールさせることで、全てのデータを見やすく表示することができます。この記事では、CSSを使ってテーブルを横スクロールさせる方法を紹介します。

横スクロールの必要性

画面幅を超えるテーブルは、特にモバイルデバイスでの閲覧時にユーザビリティを低下させます。テーブルを横スクロール可能にすることで、ユーザーはスムーズにデータを閲覧することができます。

CSSでの実装方法

以下に、CSSを使ってテーブルを横スクロールさせる方法を示します。基本的には、テーブルをラップする親要素に overflow-x: auto を設定し、テーブル自体には適切な幅を設定します。

HTMLとCSSのコード例

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>横スクロールするテーブル</title>
<style>
  .table-container {
    overflow-x: auto;
    white-space: nowrap;
  }
  table {
    width: 100%;
    border-collapse: collapse;
  }
  th, td {
    padding: 8px;
    text-align: left;
    border: 1px solid #ddd;
  }
</style>
</head>
<body>
<div class="table-container">
  <table>
    <thead>
      <tr>
        <th>ヘッダー1</th>
        <th>ヘッダー2</th>
        <th>ヘッダー3</th>
        <th>ヘッダー4</th>
        <th>ヘッダー5</th>
        <th>ヘッダー6</th>
        <th>ヘッダー7</th>
        <th>ヘッダー8</th>
        <th>ヘッダー9</th>
        <th>ヘッダー10</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>データ1</td>
        <td>データ2</td>
        <td>データ3</td>
        <td>データ4</td>
        <td>データ5</td>
        <td>データ6</td>
        <td>データ7</td>
        <td>データ8</td>
        <td>データ9</td>
        <td>データ10</td>
      </tr>
      <!-- 他の行を追加 -->
    </tbody>
  </table>
</div>
</body>
</html>
ヘッダー1 ヘッダー2 ヘッダー3 ヘッダー4 ヘッダー5 ヘッダー6 ヘッダー7 ヘッダー8 ヘッダー9 ヘッダー10
データ1 データ2 データ3 データ4 データ5 データ6 データ7 データ8 データ9 データ10

スタイルの解説

親要素の設定

.table-container {
  overflow-x: auto;
  white-space: nowrap;
}

このスタイルで、テーブルをラップする親要素に横スクロールを許可しています。また、white-space: nowrap を設定することで、テーブルのセルが折り返されずに表示されます。

テーブルの設定

table {
  width: 100%;
  border-collapse: collapse;
}
th, td {
  padding: 8px;
  text-align: left;
  border: 1px solid #ddd;
}

テーブル自体は幅を100%に設定し、セル同士の境界を崩さないように border-collapse: collapse を設定しています。各セルには適切なパディングとボーダーを設定しています。

まとめ

以上の設定で、テーブルが画面の幅を超える場合に自動的に横スクロールが有効になります。これにより、ユーザーは必要なデータを簡単に閲覧することができるようになります。テーブルのデザインを工夫することで、より使いやすいウェブページを作成しましょう。