『table要素をスマートフォン画面の幅に合わせる時に使うCSS』では、Webサイト・ブログをスマートフォン表示したときに、tableが画面からはみ出してしまう問題の解決方法として、画面の幅に合わせるためのCSSを紹介しました。
今回は、はみ出したtableを横スクロールさせるためのCSSを紹介します。
目次
はみ出したtableの例
次は、スマートフォンで表示したときに、はみ出してしまうtableの例です。
商品名 | インターネット回線 | ||||
---|---|---|---|---|---|
初期費用 | 事務手数料3000円 + 標準工事費0円 | ||||
プラン | 30Mコース | 50Mコース | 100Mコース | 200Mコース | 1ギガコース |
月額料金 | 120,000円 | 180,000円 | 250,000円 | 290,000円 | 300,000円 |
備考 | 通信料、プロバイダ料、回線終端装置使用料がすべて含まれた価格です。 |
【HTML】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | < table border = "1" cellspacing = "0" cellpadding = "5" > < tbody > < tr > < th >商品名</ th > < td colspan = "5" >インターネット回線</ td > </ tr > < tr > < th >初期費用</ th > < td colspan = "5" >事務手数料3000円 + 標準工事費0円</ td > </ tr > < tr > < th >プラン</ th > < td >30Mコース</ td > < td >50Mコース</ td > < td >100Mコース</ td > < td >200Mコース</ td > < td >1ギガコース</ td > </ tr > < tr > < th >月額料金</ th > < td >120,000円</ td > < td >180,000円</ td > < td >250,000円</ td > < td >290,000円</ td > < td >300,000円</ td > </ tr > < tr > < th >備考</ th > < td colspan = "5" >通信料、プロバイダ料、回線終端装置使用料がすべて含まれた価格です。</ td > </ tr > </ tbody > </ table > |
【CSS】
1 2 3 | table { width : 100% ; } |
tableを横スクロールさせる方法
次は、tableを横スクロールに対応させた例です。
商品名 | インターネット回線 | ||||
---|---|---|---|---|---|
初期費用 | 事務手数料3000円 + 標準工事費0円 | ||||
プラン | 30Mコース | 50Mコース | 100Mコース | 200Mコース | 1ギガコース |
月額料金 | 120,000円 | 180,000円 | 250,000円 | 290,000円 | 300,000円 |
備考 | 通信料、プロバイダ料、回線終端装置使用料がすべて含まれた価格です。 |
このようにtableを横スクロールさせるには、HTMLとCSSを編集すればOKです。
1、HTMLの編集
まずは、tableを「divタグ」で囲みます。ここでは、そのdivタグに”scroll”というclass名を付けました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | < div class = "scroll" > < table border = "1" cellspacing = "0" cellpadding = "5" > < tbody > < tr > < th >商品名</ th > < td colspan = "5" >インターネット回線</ td > </ tr > < tr > < th >初期費用</ th > < td colspan = "5" >事務手数料3000円 + 標準工事費0円</ td > </ tr > < tr > < th >プラン</ th > < td >30Mコース</ td > < td >50Mコース</ td > < td >100Mコース</ td > < td >200Mコース</ td > < td >1ギガコース</ td > </ tr > < tr > < th >月額料金</ th > < td >120,000円</ td > < td >180,000円</ td > < td >250,000円</ td > < td >290,000円</ td > < td >300,000円</ td > </ tr > < tr > < th >備考</ th > < td colspan = "5" >通信料、プロバイダ料、回線終端装置使用料がすべて含まれた価格です。</ td > </ tr > </ tbody > </ table > </ div > |
2、CSSを編集
続いては、先ほど追加した「divタグ(.scroll)」に、「overflow: auto;」「white-space: nowrap;」「::-webkit-scrollbar」「::-webkit-scrollbar-track」「::-webkit-scrollbar-thumb」のCSSを指定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | . scroll table { width : 100% ; } . scroll { overflow : auto ; /*tableをスクロールさせる*/ white-space : nowrap ; /*tableのセル内にある文字の折り返しを禁止*/ } .scroll::-webkit-scrollbar{ /*tableにスクロールバーを追加*/ height : 5px ; } .scroll::-webkit-scrollbar-track{ /*tableにスクロールバーを追加*/ background : #F1F1F1 ; } .scroll::-webkit-scrollbar-thumb { /*tableにスクロールバーを追加*/ background : #BCBCBC ; } |
指定前

指定後

これで完了です。スマートフォンで表示したとき、tableを横にスクロールすることが可能になります。もちろん、スクロールバーも表示されます。
解説
ここからは、先ほど、編集したCSSについてもっと詳しく解説します。
tableをスクロールさせる
tableをスクロールさせるために「overflow: auto;」を追加しました。
overflowとは、画面に収まりきらない内容を、どのように処理するかを指定するCSSです。今回は、スクロールして見られるようにする”auto”を指定しています。
tableのセル内にある文字の折り返しを禁止する
tableのセル内にある文字の折り返しを禁止するために「white-space: nowrap;」を追加しました。
white-spaceとは、要素内の「半角スペース」「タブ(TAB)」「改行」をどのように処理するかを指定するCSSです。今回は、行の折り返しを禁止する”nowrap”を指定しています。
tableにスクロールバーを表示する
tableにスクロールバーを表示するために「::-webkit-scrollbar」「::-webkit-scrollbar-track」「::-webkit-scrollbar-thumb」を追加しました。
::-webkit-scrollbarは、スクロールバー全体のデザインを指定します。
::-webkit-scrollbar-trackは、スクロールバーの両端にある矢印以外のデザインを指定します。
::-webkit-scrollbar-thumbは、スクロールバーの動く部分(スクロールボックス)のデザインを指定します。
WordPressでブログを構築している場合は、まず、管理画面の左メニューから「外観」→「テーマの編集」を開きます。そして、右にある「style.css」をクリックしましょう。

あとは、「style.css」内のどこでもいいので、適当な場所に先ほどのコードをコピペ。最後に「ファイルを更新」ボタンを押して保存します。