質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

538閲覧

<table>のレスポンシブ対応について

sasanoha

総合スコア11

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/04/18 14:32

前提・実現したいこと

<table>のレスポンシブ対応で、 下記の様に表示させることは可能でしょうか? (枠線や背景色は実際のソースにはありません。)

イメージ説明

<table>でこの表示が不可能な場合、別のタグなどで解決できる
方法はありますでしょうか?

該当のソースコード

<!DOCTYPE html> <html lang="jp"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title> Title </title> </head> <body> <table> <tr> <td>TOP</td> <td>その1</td> <td>その2</td> <td>その3</td> <td>その4</td> </tr> <tr> <td></td> <td>1-1</td> <td>2-1</td> <td>3-1</td> <td>4-1</td> </tr> <tr> <td></td> <td>1-2</td> <td>2-2</td> <td>3-2</td> <td>文字列2</td> </tr> <tr> <td></td> <td></td> <td>2-3</td> <td>3-3</td> <td></td> </tr> <tr> <td></td> <td>文字列1</td> <td>2-4</td> <td>3-4</td> <td></td> </tr> </table> </body> </html>

試したこと

block要素にしての並び替えなど試しましたが、
思ったような順番になりませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

一列にしたいなら、trの中身を1つずつにしてtrを大量に書けばtableでもできなくはないです。

<tr> <th>TOP</th> </tr> <tr> <th>その1</th> </tr> <tr> <td>"1-1"</th> </tr>

別のタグで実装する場合、ul(or ol)は既に説明されているので省くとして、
全てdivで書くとか。

<style> .tableOuter { display:inline-block; } .columnOuter { border: 1px solid #000000; } .columnOuter:nth-of-type(n+2) { border-top: 0px; } .tableHeader { background-color:#DDEEFF; } .tableValue:empty { display:none; } </style> </head> <body> <div class="tableOuter"> <div class="columnOuter"> <div class="tableHeader">TOP</div> </div> <div class="columnOuter"> <div class="tableHeader">その1</div> <div class="tableValue">"1-1"</div> <div class="tableValue"></div> </div> <div class="columnOuter"> <div class="tableHeader">その2</div> <div class="tableValue">"2-1"</div> </div> </div>

↑にあるように、:emptyで空の要素が指定できるので、値が空なら("empty"とか"空白"とか入っていないなら)クラスを付けたりしなくても消せます。

投稿2019/04/19 00:50

moredeep

総合スコア1507

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sasanoha

2019/04/19 11:33

ご回答ありがとうございます。 2パターンも教えていただき大変勉強になりました。 trを大量に書くという発想は凄いですね。
guest

0

ベストアンサー

以前同じような要求に対応したことがあります。
思い出しながらやっつけで書いたので調整も必要ですが希望に近いことはできるのではないかと思います。

今回はブラウザ幅800px以上でテーブルのような形、
それより狭ければ縦並び、
さらに499px以下で「空白」行を見えなくしてあります。

注意が必要なのはどこかのセルが2行になった場合でも、他のセルには影響しないことです。
(サンプルではわざと4の所の「テキスト2」を2行にしてあります。ズレがわかるかと。)

html

1<div class="resptable"> 2 <ul> 3 <li>TOP</li> 4 <li class="none">none</li> 5 <li class="none">none</li> 6 <li class="none">none</li> 7 <li class="none">none</li> 8 </ul> 9 <ul> 10 <li>1</li> 11 <li>1-1</li> 12 <li>1-2</li> 13 <li class="none">none</li> 14 <li>text1</li> 15 </ul> 16 <ul> 17 <li>2</li> 18 <li>2-1</li> 19 <li>2-2</li> 20 <li>2-3</li> 21 <li>2-4</li> 22 </ul> 23 <ul> 24 <li>3</li> 25 <li>3-1</li> 26 <li>3-2</li> 27 <li>3-3</li> 28 <li>3-4</li> 29 </ul> 30 <ul> 31 <li>4</li> 32 <li>text2text2text2text2text2<br>text2text2text2text2</li> 33 <li class="none">none</li> 34 <li class="none">none</li> 35 <li class="none">none</li> 36 </ul> 37</div>

css

1* { 2 margin: 0; 3 padding: 0; 4} 5 6ul, 7li { 8 list-style: none; 9} 10 11.resptable>ul>li { 12 border: solid 1px #999; 13} 14 15.resptable>ul>li:first-child { 16 background-color: #ccc; 17} 18 19@media (min-width: 800px) { 20 .resptable { 21 display: -webkit-box; 22 display: -ms-flexbox; 23 display: flex; 24 } 25 26 .resptable>ul { 27 flex: 1; 28 } 29} 30 31@media (max-width: 499px) { 32 .none { 33 display: none; 34 } 35}

投稿2019/04/19 00:38

dit.

総合スコア3235

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dit.

2019/04/19 00:54 編集

danofさんの回答でOKだというというコメントをしてましたが、セルの順番が変わりますね。確認不足でした。
sasanoha

2019/04/19 11:31

ご回答ありがとうございます。 tableからulへの変更を提案してみようと思います。
guest

0

回答内容が誤っていたので削除しました。

投稿2019/04/19 00:40

編集2019/04/19 00:48
danof

総合スコア59

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問