スポンサーリンク

テーブルを横スクロールする方法

こんな感じの、横スクロールするテーブルが作れます。

サンプルテキスト これはサンプルテキストです。 これはサンプルテキストです。 これはサンプルテキストです。 これはサンプルテキストです。
サンプルテキスト これはサンプルテキストです。 これはサンプルテキストです。 これはサンプルテキストです。 これはサンプルテキストです。
サンプルテキスト これはサンプルテキストです。 これはサンプルテキストです。 これはサンプルテキストです。 これはサンプルテキストです。

CSSを使わないパターン(htmlのみ)

cssなしで、htmlに直接書き込みます。

<div style="overflow-x: scroll;">
テーブル
</div>

ワードプレスの追加CSSよりも、こちらのようにhtmlに直接書き込んだ方が優先されるので、一部の記事だけ横スクロールしたい場合はこちらがおすすめです。

画面をはみ出すくらいの大きなテーブルは、そこまで作成する頻度が多くないので、この方法の方がシンプルです。

CSSを使うパターン

テーブルのhtml全体を<div class="table-wrap">〜</div>で囲み

<div class="table-wrap">
  <table class="table">
    <tr>
      <th>サンプルテキスト</th>
      <td>これはサンプルテキストです。</td>
      <td>これはサンプルテキストです。</td>
      <td>これはサンプルテキストです。</td>
      <td>これはサンプルテキストです。</td>
    </tr>
    <tr>
      <th>サンプルテキスト</th>
      <td>これはサンプルテキストです。</td>
      <td>これはサンプルテキストです。</td>
      <td>これはサンプルテキストです。</td>
      <td>これはサンプルテキストです。</td>
    </tr>
    <tr>
      <th>サンプルテキスト</th>
      <td>これはサンプルテキストです。</td>
      <td>これはサンプルテキストです。</td>
      <td>これはサンプルテキストです。</td>
      <td>これはサンプルテキストです。</td>
    </tr>
  </table>
</div>

cssには以下のように設定します。

.table-wrap {
  overflow-x: scroll;
}

注意点

こちらのテーブル横スクロールは、
width: 100%;
が設定されていると動作しません。(width: 100%;が優先になってしまい、横幅が画面サイズになってしまう)

もし設定されている場合は
width: 800px;
など、px単位で長さを表示するように設定してください。

<table style="width: 100%;">

<table style="width: 800px;">

pxの大きさは、かなりざっくりですが1列100pxとして設定後、表示と調整を繰り返してください。
8列あるテーブルは800px、5列あるテーブルは500pxです。
(100pxは、5文字くらいがすっぽり入る広さです。)

参考までに、iphone Xの横幅のピクセル数は375pxです。

ヘッダーセルだけ固定してスクロールする方法

横方向にセルを固定

サンプルテキスト これはサンプルテキストです。 これはサンプルテキストです。 これはサンプルテキストです。
サンプルテキスト これはサンプルテキストです。 これはサンプルテキストです。 これはサンプルテキストです。
サンプルテキスト これはサンプルテキストです。 これはサンプルテキストです。 これはサンプルテキストです。
<div class="table-wrap" style="overflow-x: scroll;">
<table class="table" style="width: 1200px;">
<tbody>
<tr>
<th style="position: sticky; left: 0;">サンプルテキスト</th>
<td>これはサンプルテキストです。</td>
<td>これはサンプルテキストです。</td>
<td>これはサンプルテキストです。</td>
</tr>
<tr>
<th style="position: sticky; left: 0;">サンプルテキスト</th>
<td>これはサンプルテキストです。</td>
<td>これはサンプルテキストです。</td>
<td>これはサンプルテキストです。</td>
</tr>
<tr>
<th style="position: sticky; left: 0;">サンプルテキスト</th>
<td>これはサンプルテキストです。</td>
<td>これはサンプルテキストです。</td>
<td>これはサンプルテキストです。</td>
</tr>
</tbody>
</table>
</div>

ヘッダー行(th)に、style="position: sticky; left: 0;"をつけて記載します。

縦スクロールの場合もできるので記載する予定なのですが、
ちょっと横幅が合わなくて、うまくいかないことが多いので少々お待ち下さい。

おすすめの記事