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

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

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

FlexはFlash PlayerやAdobe Airで動作するRIA(リッチインターネットアプリケーション)を開発する為のフレームワークです

HTML

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

CSS

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

Q&A

1回答

3603閲覧

flexで横並びにしたアコーディオンメニューの高さ調節

rightbrain

総合スコア3

Flex

FlexはFlash PlayerやAdobe Airで動作するRIA(リッチインターネットアプリケーション)を開発する為のフレームワークです

HTML

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

CSS

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

0グッド

0クリップ

投稿2021/08/19 05:07

前提・実現したいこと

クリックすると開閉する仕様のアコーディオンメニューをflexで横2列に配置しています。
アコーディオンを開くと、アコーディオンを設定していない要素まで一緒に高さが変わってしまうので、それを解消したいです。
下記コードの「タイトル01」の高さはそのままで、下にくる「タイトル03」をすぐ下に表示させたいです。

該当のソースコード

html

1<ul id="g-nav"> 2 <li>タイトル01</li> 3 <li> 4 <div class="btn">タイトル02</div> 5 <ul> 6 <li>サブタイトル</li> 7 <li>サブタイトル</li> 8 <li>サブタイトル</li> 9 </ul> 10 </li> 11 <li>タイトル03</li> 12 <li>タイトル04</li> 13</ul>

css

1#g-nav { 2 max-width: 900px; 3 margin: auto; 4 display: flex; 5 flex-wrap: wrap; 6 justify-content: space-between; 7}, 8#g-nav div { 9 display: block; 10 padding: 20px 25px; 11 font-size: 18px; 12 font-weight: bold; 13} 14#g-nav li, 15#g-nav div { 16 width: 48.5%; 17 display: block; 18 background: #ccc; 19} 20#g-nav li { 21 margin-bottom: 15px; 22} 23#g-nav li ul { 24 display: none; 25}

jQuery

1$(function () { 2 $(".btn").on("click", function () { 3 $(this).next().slideToggle(); 4 $('#g-nav li div').toggleClass('open'); 5 }); 6})

ご教示いただけますと幸いです。何卒宜しくお願い致します。

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

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

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

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

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

yambejp

2021/08/19 05:52

2を開いたときに3の位置はさがらないということですか?
rightbrain

2021/08/19 05:59

そうです。1のすぐ下に3を表示させたいです。
yambejp

2021/08/19 06:03

それはもうflex処理ではないのでは? absoluteなどで調整するとよいかと
rightbrain

2021/08/19 06:17

横2列にできればflexではなくてもよいのですが、floatなど他の方法でもうまくいきません。 自動的にスペースを詰めることはできないということですね。ご回答ありがとうございます。
guest

回答1

0

HTMLの方で、01と03、02と04を纏めるのが簡単そうです。
というかそれぐらいしか思いつかない。

html

1<nav id="g-nav"> 2 <ul> 3 <li>タイトル01</li> 4 <li>タイトル03</li> 5 </ul> 6 7 <ul> 8 <li> 9 <div class="btn">タイトル02</div> 10 <ul> 11 <li>サブタイトル</li> 12 <li>サブタイトル</li> 13 <li>サブタイトル</li> 14 </ul> 15 </li> 16 <li>タイトル04</li> 17 </ul> 18</nav>

css

1#g-nav { 2 max-width: 900px; 3 margin: auto; 4 display: flex; 5 justify-content: space-between; 6} 7#g-nav > ul { 8 width: 48.5%; 9} 10#g-nav li > div { 11 display: block; 12 padding: 20px 25px; 13 font-size: 18px; 14 font-weight: bold; 15} 16#g-nav ul li, 17#g-nav ul div { 18 display: block; 19 background: #ccc; 20} 21#g-nav > ul > li { 22 margin-bottom: 15px; 23} 24#g-nav li > ul { 25 display: none; 26}

投稿2021/08/19 07:32

hatena19

総合スコア34053

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問