実現したいこと
セルの数の違うテーブルを作成しようとしています。
それぞれ違うサイズを設定しながらレスポンシブ(横から縦に並べるのみで大丈夫です)も適用できるようにしたいです。
<サイズ想定>
セルが2個のものは20%、80%想定
セルが3個のものは20%、50%、30%想定
装飾は現段階では記載していません。
発生している問題・分からないこと
1サイズの違う表を作る際にcolspanを使おうと思っているが適しているか
(widthでは調整ができなかったため、colspanに行き着いたがレスポンシブがやりにくくなってしまうので使うかどうか迷っている)
2レスポンシブの際にtableの中にあるtbodyがtableよりも小さくなってしまうのはなぜか
widthやtable layoutをfixedに変えたが変更がなかった
3そもそもでこの実装は難しい?
データではあるのですが、見栄えがあまりにも悪ければ表示の仕方を考えなければと思います。
display: grid;などを使えば簡単なのですが、あとでページ内で文字を検索したら表示ができるようにしたいのでtableなどの方がいいなどあればお知らせいただけたら幸いです。
該当のソースコード
HTML
1<table class="responsive-table"> 2 <tr> 3 <td>テスト1番</td> 4 <td>テスト内容テスト内容テスト内容テスト内容テスト内容テスト内容</td> 5 </tr> 6 <tr> 7 <td>テスト2番</td> 8 <td >テスト内容</td> 9 </tr> 10 <tr> 11 <td>テスト3番</td> 12 <td>テスト内容</td> 13 <td>テスト内容テスト内容テスト内容テスト内容テスト内容</td> 14 </tr> 15 <tr> 16 <td>テスト4番</td> 17 <td >テスト内容</td> 18 </tr> 19 <tr> 20 <td>テスト5番</td> 21 <td>テスト内容</td> 22 <td>テスト内容</td> 23 </tr> 24</table> 25
SCSS
1@charset "UTF-8"; 2.responsive-table { 3 width: 100%; /* テーブルの幅を全体に広げる */ 4 border-collapse: collapse; 5 border: 1px solid #ddd; 6 table-layout: auto; 7} 8 9.responsive-table td { 10 border: 1px solid #ccc; /* セルの枠線 */ 11 padding: 10px; 12 text-align: center; /* テキストを中央揃え */ 13} 14 15/* 小さい画面向けのレスポンシブスタイル */ 16@media (max-width: 768px) { 17 .responsive-table { 18 display: block; /* テーブルをブロック表示に切り替え */ 19 } 20 21 .responsive-table tr { 22 display: block; /* 行をブロック表示 */ 23 margin-bottom: 10px; /* 行の間隔 */ 24 } 25 26 .responsive-table td { 27 display: block; /* セルをブロック表示 */ 28 text-align: left; /* テキストを左揃え */ 29 border: none; /* 枠線を非表示 */ 30 border-bottom: 1px solid #ddd; /* 下枠線だけ表示 */ 31 } 32 33 .responsive-table td:last-child { 34 border-bottom: none; /* 最後のセルの下枠線を削除 */ 35 } 36} 37
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
・サイズを変更ということでwidthを変えたりしたのですがそもそもで個数が違うのでサイズが合わなかった
・colspanはHTML上に書くことになるのでレスポンシブ上では大きさが小さくなってしまう
補足
tableをあまり使い慣れていないので、お教えいただけますと幸いです。
よろしくお願い致します。
説明がわかりにくければコメントいただけますと幸いです。

回答2件
あなたの回答
tips
プレビュー