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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

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

Q&A

解決済

2回答

1035閲覧

jQueryで同じ位置からslideDownさせたい

s__h

総合スコア7

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

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

0グッド

0クリップ

投稿2020/07/03 04:09

編集2020/07/03 04:17

前提・実現したいこと

リンク内容
↑こちらのHPにあるheaderのnavと同様のドロップダウンメニューを作成しているのですが、それぞれ3つを左の同様の位置から表示させたいです。
左はCSSでpositionしているので問題無く表示されるのですが、真ん中と右のメニューはその下にドロップダウンされます。
これは、ひとつづつpotision指定しなければならないのでしょうか?
よろしくお願いいたします。
イメージ説明

該当のソースコード(HTML、jQuery)

<nav> <ul class="dropdwn"> <li class="navMenu">来院・入院の方 <ul class="dropdwn_menu"> <dl> <dt>病院ヘ行く</dt> <dd> <li><a href="#">A1</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> </dd> </dl> <dl> <dt>調べる</dt> <dd> <li><a href="#">A1</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> </dd> </dl> <dl> <dt>問い合わせる</dt> <dd> <li><a href="#">A1</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> </dd> </dl> <div class="dropdwnFooter"> <p><a href="">TOP</a></p> <p><a href=""><img src="img/btn_close_01.png" alt=""></a></p> </div> </ul> </li> <li class="navMenu">来院・入院の方 <ul class="dropdwn_menu"> <dl> <dt>病院ヘ行く</dt> <dd> <li><a href="#">A1</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> </dd> </dl> <dl> <dt>調べる</dt> <dd> <li><a href="#">A1</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> </dd> </dl> <dl> <dt>問い合わせる</dt> <dd> <li><a href="#">A1</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> </dd> </dl> <div class="dropdwnFooter"> <p><a href="">TOP</a></p> <p><a href=""><img src="img/btn_close_01.png" alt=""></a></p> </div> </ul> </li> <li class="navMenu">来院・入院の方 <ul class="dropdwn_menu"> <dl> <dt>病院ヘ行く</dt> <dd> <li><a href="#">A1</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> </dd> </dl> <dl> <dt>調べる</dt> <dd> <li><a href="#">A1</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> </dd> </dl> <dl> <dt>問い合わせる</dt> <dd> <li><a href="#">A1</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> <li><a href="#">A2</a></li> </dd> </dl> <div class="dropdwnFooter"> <p><a href="">TOP</a></p> <p><a href=""><img src="img/btn_close_01.png" alt=""></a></p> </div> </ul> </li> </ul> </nav>

該当のソースコード(CSS)

/* drop dwn menu */ .dropdwn { max-width: 1200px; display: flex; } nav ul { height: auto; width: 90%; text-align: center; list-style-type: none; margin: 0 auto; padding: 0; color: #fff; } nav ul li.navMenu { max-width: calc(1200px / 3); position: relative; padding: 20px 30px; display: block; cursor: pointer; font-size: 20px; } ul.dropdwn > li { width: 100%; background-color: #000055; display: inline; } ul.dropdwn_menu { width: 100%; display: none; position: absolute; top: 60px; left: 0px; padding: 0; background: yellow; width: 1200px; } ul.dropdwn dl { float: left; width: 400px; } ul.dropdwn dl dt { color: black; } .dropdwn_menu li { width: 100%; } .dropdwn_menu li a { padding: 5px 0; margin: -5px 5px -5px -5px; display: block; } li a:hover { background: #b3d7ff; color: rgb(65, 65, 65); }

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

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

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

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

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

guest

回答2

0

ベストアンサー

以下のように position: relative; を
個々の li ではなく、親の ul にかければ可能です。

css

1.dropdwn { 2 max-width: 1200px; 3 display: flex; 4 position: relative; /* 追加 */ 5} 6nav ul li.navMenu { 7 max-width: calc(1200px / 3); 8/* -- position: relative; 削除 */ 9 padding: 20px 30px; 10 display: block; 11 cursor: pointer; 12 font-size: 20px; 13}

HTML構造

ただ、質問にありました

html

1 <ul class="dropdwn_menu"> 2 <dl> 3 <dt>病院ヘ行く</dt> 4 <dd> 5 <li><a href="#">A1</a></li> 6 <li><a href="#">A2</a></li> 7 <li><a href="#">A2</a></li> 8 <li><a href="#">A2</a></li> 9 </dd> 10 </dl> 11 ~ 中略 ~~ 12 <div class="dropdwnFooter"> 13 <p><a href="">TOP</a></p> 14 <p><a href=""><img src="img/btn_close_01.png" alt=""></a></p> 15 </div> 16 </ul>

▲ を簡略化 ▼

html

1<ul> 2 <dl> 3 <dt></dt> 4 <dd> 5 <li></li> 6 </dd> 7 </dl> 8 他のブロック要素 9</ul>

このような入れ子は
構造上あり得ませんので
修正されることをお勧めしますm(__)m

投稿2020/07/03 05:31

-millmill-

総合スコア676

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

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

s__h

2020/07/03 05:35

ご回答ありがとうございました! HTMLも修正します。
-millmill-

2020/07/03 05:38

ついでに^^; 左右の padding を入れている要素には box-sizing: border-box; などを入れないとはみ出してしまうので ご注意くださいね^^
guest

0

一番ラクなのはdropdwn_menuに別々にclassを付加して、そのクラスをもとにleftを調整する

投稿2020/07/03 04:44

yambejp

総合スコア116724

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

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

s__h

2020/07/03 05:35

ご回答ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問