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

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

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

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

HTML5

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

3592閲覧

ハンバーガーメニューがトップ画像に隠れてしまいます。

beginner15

総合スコア1

CSS3

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

HTML5

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/07/01 07:05

編集2021/07/01 07:56

前提・実現したいこと

html, CSS, JavaScriptを使って、カルーセル画像群の上に、ハンバーガーメニューを出させたいです。

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

画像の下に、ハンバーガーメニューが隠れてしまいます。

該当のソースコード

html

<!DOCTYPE html> <html lang="ja"> <head> <!-- Required meta tags --> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <meta name="format-detection" content="telephone=no">
<title>My Portfolio</title> <meta name="description" content=""> <meta name="keywords" content="ポートフォリオ,ブログ"> <meta property="og:title" content="My Portfolio"> <meta property="og:type" content="website"> <meta property="og:image" content=""> <!--サムネイル画像をURLで当て込む --> <meta property="og:url" content=""> <meta property="og:site_name" content=""> <meta property="og:description" content=""> <meta property="og:locale" content="ja_JP"> <link href="https://fonts.googleapis.com/css?family=Noto+Sans+JP:300,400,500,700&display=swap" rel="stylesheet"> <link rel="stylesheet" href="../About_My_Site/CSS/style.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@splidejs/splide@latest/dist/css/splide.min.css"> <link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet">
</head>
<body> <header> <nav id="nav"> <ul> <li><a href="#">works</a></li> <li><a href="#">profile</a></li> <li><a href="#">blog</a></li> <li><a href="#">contact</a></li> </ul> </nav> <div id="hamburger"> <span class="inner_line" id="line1"></span> <span class="inner_line" id="line2"></span> <span class="inner_line" id="line3"></span> </div> <h1>My Portfolio</h1> </header> <div class="splide-outer"> <div class="splide"> <div class="splide__track"> <ul class="splide__list"> <li class="splide__slide"> <picture> <source media="(min-width: 768px)" srcset="https://placehold.jp/ccffff/000000/960x540.png?text=Slide1_PC"> <img src="https://placehold.jp/ccffff/000000/960x540.png?text=Slide1_SP"> </picture> </li> <li class="splide__slide"> <picture> <source media="(min-width: 768px)" srcset="https://placehold.jp/ffccff/000000/960x540.png?text=Slide2_PC"> <img src="https://placehold.jp/ffccff/000000/960x540.png?text=Slide2_SP"> </picture> </li> <li class="splide__slide"> <picture> <source media="(min-width: 768px)" srcset="https://placehold.jp/ccffcc/000000/960x540.png?text=Slide3_PC"> <img src="https://placehold.jp/ccffcc/000000/960x540.png?text=Slide3_SP"> </picture> </li> </ul> </div> </div> </div> </body> <!-- partial -->
<script src="../About_My_Site/JS/script.js"></script> <script src="https://cdn.jsdelivr.net/npm/@splidejs/splide@latest/dist/js/splide.min.js"></script>
```CSS @charset "UTF-8"; /* -------------------------------- base -------------------------------- */ .html { font-size: 62.5%; } .body { font-size: 1.6rem; margin: 0px auto; padding: 0px; text-align: center; } /* -------------------------------- hamburger -------------------------------- */ @media screen and (max-width: 480px) { #nav { z-index: 2; } #nav ul li { font-size: 14px; position: relative; } h1 { display: none; } h2 { display: block; font-size: 14px; } } * { margin: 0; padding: 0; } body { background: #ffffff; } header { position: fixed; width: 100%; height: 90px; background: #ffffff; } #nav{ position: relative; height: 100vh; width: 40%; left: -40%; top: 0; background: #ffffff; transition: .7s; z-index: 2; } #nav ul{ padding-top: 80px; } #nav ul li{ list-style-type: none; font-size: 20px; } #nav a{ display: block; text-decoration: none; color: #000000; margin: 0 15px; padding: 10px; transition: .5s; } #nav li a:hover{ color: #8d8d8d; background: #cd5c5c; border-bottom: none; } #hamburger { display: block; position: relative; top: 20px; left: 30px; width: 50px; height: 44px; cursor: pointer; transition: 1s; } .inner_line { display: block; position: absolute; left: 0; width: 50px; height: 3px; background-color: #5f5f5f; transition: 1s; border-radius: 4px; } #line1 { top: 0; } #line2 { top: 20px; } #line3 { bottom: 0px; } h1, h2 { text-align: center; line-height: 90px; color: #a7a7a7; } h2 { display: none; } p { padding-top: 200px; text-align: center; } .in{ transform: translateX(100%); } .line_1,.line_2,.line_3{ background: #000000; } .line_1 { transform: translateY(20px) rotate(-45deg); top: 0; } .line_2 { opacity: 0; } .line_3 { transform: translateY(-20px) rotate(45deg); bottom: 0; } /* -------------------------------- body -------------------------------- */ .splide-outer { max-width: 100%; margin: auto; z-index: 1; } .splide__slide img { width: 100%; }

JavaScript

1function hamburger() { 2 document.getElementById('line1').classList.toggle('line_1'); 3 document.getElementById('line2').classList.toggle('line_2'); 4 document.getElementById('line3').classList.toggle('line_3'); 5 document.getElementById('nav').classList.toggle('in'); 6} 7document.getElementById('hamburger').addEventListener('click' , function () { 8 hamburger(); 9} ); 10 11document.addEventListener('DOMContentLoaded', () => { 12 new Splide('.splide', { 13 type: 'loop', 14 }).mount() 15})

試したこと

z-indexを入れてみたのですが、反応がありませんでした。
よろしくお願いいたします。

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

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

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

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

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

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

itagagaki

2021/07/01 07:30

splide-outer をごっそり除去してみても、そもそもハンバーガーメニュー自体表示されていないようですよ。
beginner15

2021/07/01 07:58

早速、ありがとうございます! cssのpositionを変更していたためだったみたいです…。 今は、一応画面の中には存在しているのですが、まだ画像の下にハンバーガーメニューがある状態で、問題を探しているところです。
guest

回答1

0

ベストアンサー

まず#navheight100vhで画面いっぱいを占めるので、続く#hamburgerは画面外になってしまって表示されないと思います。

それを解決したとして、#hamburger#navが隠されず表示されるためには、親要素であるheaderz-indexとして1以上の値を設定する必要があります。

さらに加えて、開いたハンバーガーメニューを閉じることができるようにするためには、#hamburgerz-indexとして2以上の値を設定する必要があります。

投稿2021/07/01 08:22

itagagaki

総合スコア8402

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

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

beginner15

2021/07/01 09:01

ありがとうございます! 教えていただいた通りに修正をしたら、表示されました…! 構造を、きちんと把握出来てなかったことを感じています。とても勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問