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

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

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

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

解決済

hoverして、2階層目のメニューを表示させたい

HIroki
HIroki

総合スコア1

CSS3

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

1回答

0評価

0クリップ

194閲覧

投稿2022/08/12 17:46

前提

headerのnavをhoverしてメニューを表示させる機構で、表示が上手くいきません。

実現したいこと

hoverして、2階層目のメニューを表示させたい。

該当のソースコード

HTML

ソースコード <header class="header"> <div class="header__inner"> <h1> <a href="index.html"> <img src="img/header__logo.png" alt="ロゴ" class="header__logo"> </a> </h1> <div class="header__btn"><span></span><span></span><span></span></div> <nav class="nav"> <div class="nav__list--scroll"> <ul class="nav__list"> <li><a href="1-2.html#">HOME</a></li> <li class="has-child"><a href="1-2.html#">コース</a> <ul> <li><a href="1-2.html#">コース紹介</a></li> <li><a href="1-2.html#">タイトル</a></li> <li><a href="1-2.html#"><タイトル/a></li> <li><a href="1-2.html#">タイトル</a></li> </ul> </li> </ul> </div> </nav> </div> </header> ```CSS /* ===ヘッダーのデザイン=== */ .header { background-color: var(--white-color); width: 100%; position: fixed; height: 5rem; z-index: 900; display: flex; align-items: center; } .header__inner { position: fixed; padding: 6px 16px; width: 100%; height: 5rem; margin: 0 auto; display: flex; align-items: center; z-index: 900; } /* ヘッダーのロゴ */ .header__logo { width: 20rem; } /* ===ヘッダー終了=== */ /* ===ハンバーガーボタン開始=== */ .header__btn { position: fixed; position: absolute; z-index: 9999; right: 0; cursor: pointer; width: 50px; height: 50px; } /*×に変化*/ .header__btn span { display: inline-block; transition: all .4s; position: absolute; left: 16px; height: 3px; border-radius: 2px; background-color: var(--text-color); width: 45%; } .header__btn span:nth-of-type(1) { top: 15px; } .header__btn span:nth-of-type(2) { top: 23px; } .header__btn span:nth-of-type(3) { top: 31px; } .header__btn.active span:nth-of-type(1) { top: 18px; left: 18px; transform: translateY(6px) rotate(-45deg); width: 30%; } .header__btn.active span:nth-of-type(2) { opacity: 0; } .header__btn.active span:nth-of-type(3) { top: 30px; left: 18px; transform: translateY(-6px) rotate(45deg); width: 30%; } /* ===ハンバーガーボタン終了=== */ /* ===ナビゲーション開始=== */ .nav { position: fixed; z-index: 999; top: 0; right: -120%; width: 100%; height: 100vh; background-color: var(--bg-color); transition: all 0.6s; } /*アクティブクラスがついたら位置を0に*/ .nav.panelactive { right: 0; } /*ナビゲーションの縦スクロール*/ .nav.panelactive, .nav__list--scroll { position: fixed; z-index: 999; width: 100%; height: 100vh; overflow: auto; -webkit-overflow-scrolling: touch; } .nav__list { position: absolute; z-index: 999; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80%; } .nav__list li.has-child ul { position: relative; left: 0; top: 0; width: 100%; visibility: visible; opacity: 1; display: none; } .nav__list a { text-decoration: none; display: block; font-size: 1.6rem; font-weight: bold; text-align: center; color: var(--text-color); padding: 2rem 3.5rem; transition: all .3s; } .nav__list li ul li { border-bottom: solid; margin: 0 auto; width: 70%; } .nav__list li ul li:last-child { border-bottom: none; } .nav__list li ul li a{ padding: .8rem; } /*下の階層のulや矢印の基点にするためliにrelativeを指定*/ .nav__list li { position: relative; } /* 矢印の設定*/ .nav__list li.has-child::before { content: ''; position: absolute; left: 15px; top: 30px; width: 6px; height: 6px; border-top: 2px solid var(--text-color); border-right: 2px solid var(--text-color); transform: rotate(135deg); } .nav__list li.has-child.active::before { content: ''; position: absolute; transform: rotate(-45deg); top: 30px } /* ===ナビゲーション終了=== */ /* ===PCのデザイン=== */ @media screen and (min-width:1025px){ /* header */ .header { height: 8rem; z-index: 0; } .header__inner { position: fixed; height: 8rem; display: flex; align-items: center; justify-content: space-between; } .header__logo { width: 30rem; } .header__btn { display: none; } .nav { position: static ; z-index: auto; height: 8rem; background-color: transparent; overflow-y: scroll; -ms-overflow-style: none; /* IE, Edge 対応 */ scrollbar-width: none; /* Firefox 対応 */ z-index: 0; } .nav::-webkit-scrollbar { display: none; } .nav__list { position: static; transform: none; display: flex; justify-content: flex-end; } .nav__list li a { position: static; padding: 0 1.6rem; } .nav__list--scroll { position: static; height: 8rem; display: flex; align-items: center; justify-content: flex-end; } .nav__list li.has-child::before { left: 1px; top: 10px; } .nav__list li { position: relative; } .nav__list li.has-child ul{ /*絶対配置で位置を指定*/ position: absolute; left:0; top:80px; z-index: 4; /*形状を指定*/ background:blue; width:180px; /*はじめは非表示*/ visibility: hidden; opacity: 1; /*アニメーション設定*/ transition: all .3s; padding: 0; display: block; color:red; } .nav__list li.has-child a:hover > ul, .nav__list li.has-child ul li a:hover > ul, .nav__list li.has-child a:active > ul, .nav__list li.has-child ul li a:active > ul{ visibility: visible; opacity: 1; display: block; color: red; } } ### 補足情報 https://coco-factory.jp/ugokuweb/move01-cat/globalnavigation/ を参考に制作しました。 ここにより詳細な情報を記載してください。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

CSS3

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。