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

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

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

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

CSS

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

Q&A

解決済

1回答

335閲覧

flexboxで崩れないように2行に折り返したい

chogemi

総合スコア33

HTML

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

CSS

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

0グッド

0クリップ

投稿2023/07/26 12:05

実現したいこと

1366px(pc)から375px(sp)
へサイズを変えるときに横並び1列から
2列に、崩れないようにしたいです。

1366px(pc)の表示
1234

375px(sp)の表示
12
34

前提

1052pxあたりからスマホ画面375pxまでの間で

123
4

のような崩れた表示になってしまいます

発生している問題・エラーメッセージ

https://i.gyazo.com/83a10e32388088226f28016e239617ff.png

該当のソースコード

<ul class="charm-circle"> <li class="circle"> <div class="charm-b"><span class="circle-text">魅力</span><span class="circle-number">1</span></div> <p class="circle-comment">医師による<br>カウンセリング</p> </li> <li class="circle"> <div class="charm-b"><span class="circle-text">魅力</span><span class="circle-number">2</span></div> <p class="circle-comment">安心の<br>定額料金</p> </li> <li class="circle"> <div class="charm-b"><span class="circle-text">魅力</span><span class="circle-number">3</span></div> <p class="circle-comment">全室個室を<br>お約束</p> </li> <li class="circle"> <div class="charm-b"><span class="circle-text">魅力</span><span class="circle-number">4</span></div> <p class="circle-comment">東京駅から<br>徒歩3分</p> </li> </ul>

ul.charm

1 display: flex; 2 flex-wrap: wrap; 3 justify-content: center; 4 column-gap: 3.3rem; 5 position: relative; 6 margin-top: 9rem; 7 margin-bottom: 3rem; 8 9} 10 11@media (min-width: 768px) { 12 ul.charm-circle { 13 column-gap: 13.5rem; 14 margin-top: 6rem; 15 margin-bottom: 5.3rem; 16 } 17} 18 19 20ul.charm-circle::before { 21 content: ""; 22 display: block; 23 width: 92%; 24 height: 1px; 25 background: #606060; 26 position: absolute; 27 top: -60px; 28 left: 50%; 29 transform: translate(-50%, -50%); 30} 31 32@media (min-width: 768px) { 33 ul.charm-circle::before { 34 display: none; 35 } 36} 37 38.charm-b { 39 display: flex; 40 flex-direction: column; 41 justify-content: center; 42 align-items: center; 43 width: 15.6rem; 44 height: 15.5rem; 45 margin: 0 auto; 46 border: 3px solid rgb(0, 151, 167); 47 border-radius: 50%; 48 color: rgb(0, 151, 167); 49} 50 51@media (min-width: 768px) { 52 .charm-b { 53 width: 16rem; 54 height: 16rem; 55 line-height: 1.3; 56 } 57} 58 59p.circle-comment { 60 text-align: center; 61 font-size: 2rem; 62 line-height: calc(35/20); 63 padding-top: 1rem; 64 padding-bottom: 2.4rem; 65} 66 67@media (min-width: 768px) { 68 p.circle-comment { 69 text-align: center; 70 font-size: 2.4rem; 71 padding-top: 0.8rem; 72 padding-bottom: 0; 73 } 74} 75 76span.circle-text { 77 font-size: 2.4rem; 78 font-family: 'Noto Serif JP', serif; 79 font-weight: bold; 80} 81 82span.circle-number { 83 font-size: 4.8rem; 84} 85

試したこと

flex-wrap: wrap;を使ってます

補足情報(FW/ツールのバージョンなど)

アドバイスよろしくお願いします

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

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

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

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

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

guest

回答1

0

ベストアンサー

回答の前に、今後は下記の点を考慮して投稿してください。

画像はgyazoのリンクではなく、
この掲示板は画像をアップロードして表示できますので、それを利用してください。
下記のように掲示板内に表示できます。

イメージ説明

あと、CSSのコードブロックの記述が毎回、間違っています。下記のように```の後に言語名を記述して改行してください。

 ```css(改行)
ここからCSSコードを書き始める

 ```
正しく記述出来たら、下記のような表示になるはずです。投稿するときにプレビュー画面をみて正しく表示できているか確認してください。

css

1ul.charm-circle { 2 display: flex; 3 flex-wrap: wrap; 4 justify-content: center; 5 column-gap: 3.3rem; 6 position: relative; 7 margin-top: 9rem; 8 margin-bottom: 3rem; 9/* 以下略 */

質問内容をもう少し具体的に伝わるように修正してください。

現状のCSSだと上記の画像のように表示されると思いますが、ご希望のレイアウトはどのようなものでしょうか。
現状はpcからspまで幅がせまくなるにつれて、4列→3列→2列→1列となりますが、4列→2列→1列 というように3列にならないようにしたいということでしょうか。

実装例

あくまで、考え方のサンプルですので、実際のページで確認しながら、各値は調整してください。

css

1@media (min-width: 768px) { 2 ul.charm-circle { 3 column-gap: 13.5rem; 4 margin-top: 6rem; 5 margin-bottom: 5.3rem; 6 width: 50rem; /* 2列になるよう幅を制限 数値は調整してください */ 7 margin-left: auto; 8 margin-right: auto; 9 } 10} 11@media (min-width: 1399px) { /* 4列になるブレークポイント */ 12 ul.charm-circle { 13 width: 100%;  /* 幅の制限を解除 */ 14 } 15}

flexレイアウトでの実装例ですが、gridレイアウトを使えば明示的に列数を指定できますので、よりシンプルに直感的に実装できると思います。

投稿2023/07/26 12:46

編集2023/07/26 13:28
hatena19

総合スコア34367

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

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

chogemi

2023/07/26 12:56

ご丁寧にご教示いただきありがとうございます。 次回より手順を踏んで質問させていただきます。 修正内容ですが 1366pxから375pxサイズの間で 4列→2列というようにしたいです。 3列にならないようにしたい。という ことで認識あっていると思います。 魅力1 魅力2 魅力3魅力4 ↓ 魅力1魅力2 魅力3魅力4 この二パターンにしたいです。
hatena19

2023/07/26 13:29 編集

提示のコードでサンプルを作成して確認すると、1366px以下で3列ではなく、1700px以下から3列になりますので、提示されていない部分もあるように思えます。 現状、1366px以上は4列、1366px以下で3列になるのなら、 対処法としては、メディアクエリで、1366pxから375pxの間で、ul.charm-circle の幅を2列になるように制限することになります。 実装例を回答に追記しました。
chogemi

2023/07/26 21:11

不備があったようで失礼いたしました。 表示が崩れているところをポイントでメディアクエリで指定するのですね。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問