ホームへ

【CSS】tableをレスポンシブで縦並びにする方法

2021年08月16日

「パソコンではtableを使って横並べにしたいけど、スマホでは横幅が足りないからいっそ縦並びにしてしまいたい!」

ヘッダー セルセル
ヘッダー セルセル

←コレを

こうしたい→

ヘッダー セルセル
ヘッダー セルセル

CSSでtableを分解して縦並びにする方法を解説します。レスポンシブ対応です。

table,tbody,tr,th,tdにdisplay:block

table構成要素にdisplay:blockを指定します。

↓下記の表はレスポンシブ対応させており、ブラウザ幅を狭くすると縦並びになります。

ヘッダー セルセル
ヘッダー セルセル
<style>
@media(max-width:800px){           
    table,tbody,tr,th,td{
        display: block;
    }
}
</style>
<table border="1">
    <tr>
        <td>左上</td><td>右上</td>
    </tr>
    <tr>
        <td>左下</td><td>右下</td>
    </tr>
</table>

display:blockはブロック要素に変えるCSSです。

tableやtdすらただのdivと化してしまいます。

CSSやhtmlの基本をしっかり理解すると、この記事の内容もより理解できるようになりますよ。

↓CSSやhtmlを楽しく学べるようにマンガを描きましたのでゼヒご覧ください↓

↑「副業してもう少し稼ぎたい!」というかたのために副業の方法も解説しています。

【注意】tbodyを忘れずに!

table内には「tbody」があります。htmlソース内で指定しなくてもブラウザ側が補填して付与します。セレクタで指定し忘れないようにしましょう。

レスポンシブ対応としてメディアクエリを使ってCSSを切り替えています。「@media(max-width:800px)」のように記載します。

「この記事の内容がよくわからなかった…」「なんかうまくいかなかった…」というかたは下記記事↓でhtmlとCSSの基本を学びましょう。
わからないまま突き進むより基本を学ぶのが結局近道です。

CSSやhtmlをマンガで学ぶ