• 締切済み

レスポンシブなtableを作るにあたって

scssのコードです @media(max-width:#{$bp}px){ table.break-at-#{$bp}{ display:block;width:100%; tbody,thead{display:block;} tr{ display:block;width:100%; th,td{display:block;width:100%;box-sizing:border-box;} } } } こういうことするのはありですか? ありだとして、これだとtdにwidth:100%が効いてくれません どうすればtdもwidth:100%にできるのでしょう?

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

table自体が、リキッドですからレスポンシブにする必要はないと思います。 また、インデントさせるとわかるように @media(max-width:#{$bp}px){   table.break-at-#{$bp}{     display:block;width:100%;     tbody,thead{display:block;   }   tr{     display:block;width:100%;     th,td{        display:block;width:100%;        box-sizing:border-box;     }   } } }  あきらかにエラーになってます。  ⇒W3C CSS 検証サービス( http://jigsaw.w3.org/css-validator/#validate_by_input ) もし、これがプレゼンテーションのために使用されているのではないtableでしたらそのまま。もしプレゼンテーション--整形のためのtableでしたら、tableを使うべきではないです。

H240S18B73
質問者

補足

まずこれはscssのコードです、 scssのコードとしては不正ではないはずです scssに関する説明は割愛します $bpはbreakpointを表す変数です やりたいことは画面幅が$bpで 指定した値以下になったとき break-at-($bp)のクラスのtableを 一列にするということ つまり本来横並びの同行のthとtdを 縦並びにしたいということです 知りたいことはtableを構成する要素の displayをblockに変えてしまっても 問題ないかということ そして実際表示上は問題が出ているが これを解決する方法はないかということです

関連するQ&A