LoginSignup
12
7

More than 5 years have passed since last update.

CSSのみでtableの行列入れ替え

Last updated at Posted at 2018-02-01

レスポンシブで行列入れ替えて表示したい、というようなケースがあったのでやってみました。
Safari, Chrome, Firefoxで確認してますが、どうかなあ。
flex使ってるからIE10以降だったら大丈夫なはず。
だから、ここだけモバイルファーストを破って、PC用にtable組んでから、mobile向けに行列入れ替えたら良いかもしれない。
どちらにせよ、中身の高さが揃ってないと駄目なのでフレキシブルな組み方では無いけれども内容固定のコンテンツだったら使えるかな。

HTML

<table>
    <thead>
        <tr>
            <th></th>
            <th>午前</th>
            <th>午後</th>
        </tr>
    </thead>
    <tbody>
        <tr><th></th><td></td><td></td></tr>
        <tr><th></th><td></td><td></td></tr>
        <tr><th></th><td></td><td></td></tr>
        <tr><th></th><td></td><td></td></tr>
        <tr><th></th><td></td><td></td></tr>
        <tr><th></th><td>-</td><td>-</td></tr>
        <tr><th></th><td>-</td><td>-</td></tr>
    </tbody>
</table>

CSS

table {
    width: auto;
    border-right: 1px solid #eee;
    border-bottom: 1px solid #eee;
    border-collapse: collapse;
    border-spacing: 0;
}
th,td {
        display: block;
        width: auto;
        padding: 1em;
        text-align: center;
        border-top: 1px solid #eee;
        border-left: 1px solid #eee;
}
thead {
    display: flex;
    float: left;
}
thead th:first-child:before {
   content: ' ';
   padding: 1em;
}
tbody {
    display: flex;
    width: auto;
}
tbody tr {
    display: flex;
    flex-direction: column;
}

プレビュー

スクリーンショット 2018-01-31 22.03.31.png

参照

flex - CSS | MDN
https://developer.mozilla.org/ja/docs/Web/CSS/flex

12
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
7