質問編集履歴

1

書き方が悪くやりたいことが伝わりにくかったため

2022/06/17 09:47

投稿

michir
michir

スコア12

test CHANGED
File without changes
test CHANGED
@@ -1,25 +1,31 @@
1
- 現状、ビューポーの幅によって、表の表示方法以下のように変えています。
1
+ WordPressでウェブサイトを制作しています。
2
-
3
- 599px超:THとTDが横並び
4
- 599px以下:THとTD縦並び
2
+ サイトの中に表あるページがあります。
5
-
6
3
  ```html
7
4
  <table>
8
5
  <tbody>
9
- <tr><th>所在地</th><td>東京都千代田区千代田3-3-3 千代田ビル3F</dd></td>
6
+ <tr><th>所在地</th><td>東京都千代田区千代田3-3-3 千代田ビル3F</td></tr>
10
7
  <tr><th>電話番号</th><td><a href="tel:03-3333-3333">03-3333-3333</a></td></tr>
11
8
  <tr><th>コメント</th><td>ほげほげほげほげほげほげほげほげほげほげほげほげ</td></tr>
12
9
  </tbody>
13
10
  </table>
14
11
  ```
12
+ なお、thとtdのインナーテキストは、WPから吐き出しており、ページによって文字数が異なります。
13
+
14
+ 狭い画面で閲覧した場合、表中のテキストの折り返しが多くなり、見にくいので、画面が狭い場合は、thとtdを縦に並べて表示させています。
15
+
16
+ ブレイクポイントについて、本来は、下図のように、ビューポートの幅と折り返しが生じるtableの幅を比較して、前者の方が狭い場合に縦並びにしたいです。
17
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-06-17/3dad9a55-4a11-4870-9f74-8fa7ba596956.jpeg)
18
+ しかし、やり方が分からないので、現状はブレイクポイントを以下のように599pxに仮置きしています。
15
19
  ```css
16
20
  @media (max-width: 599px){
17
21
  th,td{
18
22
  display:block;
19
23
  }}
20
24
  ```
25
+ しかし、これでは次のような問題が生じます。
26
+ - 画面幅が599px以下の場合、thとtdを横並びにしても画面幅が十分に足りている場合でも、不必要に縦並びになってしまう。
21
- THとTDインナーテキストは、WPから吐き出しておりページによって文字数が異なります
27
+ - 画面幅が599px超場合、テキストに折り返が生じいる場合でも横並びで表示される
22
28
 
23
- 画面幅に余裕があるのにもかかわらず不必要に縦並びになってしまうとを防ぐために横並びにするテキストに折り返しが生じる場合縦並びにようにしたいのですが、どのように実装すればよいか助言を頂けますと大変助かります。
29
+ ビューポートの幅と折り返しが生じるtableの幅を比較して、前者の方が狭い場合縦並びに方法を助言を頂けますと大変助かります。
24
30
 
25
31
  ビューポート幅はmatchMediaによって取得すればよいかと存じますが、折り返しが生じる要素幅をどのように取得すればよいかが分かりません。