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

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

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

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

HTML5

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

メニュー

メニューは、UIにおける仕組みであり、ユーザに機能の表示と実行する手段を与えます。

jQuery

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

Q&A

解決済

2回答

2618閲覧

ハンバーガーメニューをヘッダーの中に入れたい

mamenekomameta

総合スコア7

CSS3

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

HTML5

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

メニュー

メニューは、UIにおける仕組みであり、ユーザに機能の表示と実行する手段を与えます。

jQuery

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

0グッド

1クリップ

投稿2021/10/13 15:06

ハンバーガーメニューを作ってます。
headerの中にハンバーガーメニューが入るようにHTMLを書いたつもりなのですが、画像のように右に飛び出してしまいます。
headerにposition: fixed;を書いたのが原因かと思いposition: fixed;を消してみたのですが一向に改善されません。

どなたかご享受いただけないでしょうか?

イメージ説明

html

1 2 3 <!-- ヘッダーここから --> 4 <div id="header" class="wrapper"> 5 <header class="header"> 6 <div class="header-container"> 7 <h1 class="header-logo"> 8 <a href="index.html"> 9 <img src="img/logo.svg"> 10 </a> 11 </h1> 12 <div id="hamburger"> 13 <p class="btn-gNav"> 14 <span></span> 15 <span></span> 16 </p> 17 <nav id="gNav" class="gNav"> 18 <ul class="gNav-menu"> 19 <li><a href="products.html">PRODUCTS</a></li> 20 <li><a href="about.html">ABOUT</a></li> 21 <li><a href="company.html">COMPANY</a></li> 22 <li><a href="#">CONTACT</a></li> 23 </ul> 24 </nav> 25 </div> 26 </div> 27 </header> 28 </div> 29 30

CSS

1.wrapper { 2 padding-top: 60px; 3} 4 5/* header */ 6 7.header { 8 width: 1280px; 9 height: 80px; 10 background-color: #fff; 11 display: flex; 12 align-items: center; 13 justify-content: space-between; 14 position: fixed; 15 top: 0; 16 left: 40px; 17 z-index: 10; 18 margin-top: 0; 19 background-color: pink; 20} 21 22.header-logo { 23 padding: 16px 0; 24} 25 26.header-logo img { 27 width: 180px; 28 height: 20px; 29} 30 31/*-- hamburger ------------------------------------*/ 32 33.header-container #hamburger .btn-gNav{ 34 position: fixed; 35 top: 20px; 36 right: 20px; 37 width: 30px; 38 height: 24px; 39 z-index: 3; 40 box-sizing: border-box; 41 cursor: pointer; 42 -webkit-transition: all 400ms; 43 transition: all 400ms; 44} 45 46.header-container #hamburger .btn-gNav span{ 47 position: absolute; 48 width: 100%; 49 height: 2px; 50 background: #666; 51 border-radius: 10px; 52 -webkit-transition: all 400ms; 53 transition: all 400ms; 54} 55 56.header-container #hamburger .btn-gNav span:nth-child(1) { 57 top:0; 58} 59 60.header-container #hamburger .btn-gNav span:nth-child(2) { 61 top:10px; 62} 63 64.header-container #hamburger .btn-gNav.open span:nth-child(1){ 65 background: #fff; 66 top: 6px; 67 -webkit-transform: rotate(-45deg); 68 -moz-transform : rotate(-45deg); 69 transform : rotate(-45deg); 70} 71 72.header-container #hamburger .btn-gNav.open span:nth-child(2),.header-container #hamburger .btn-gNav.open span:nth-child(3){ 73 top: 6px; 74 background :#fff; 75 -webkit-transform: rotate(45deg); 76 -moz-transform : rotate(45deg); 77 transform : rotate(45deg); 78} 79 80#gNav{ 81 position: fixed; 82 top: 0; 83 margin: 0; 84 padding: 22px 50px; 85 right: -100%; 86 width: 100%; 87 height: 100%; 88 background: rgba(0, 0, 0, 0.8); 89 font-size: 14px; 90 box-sizing: border-box; 91 z-index: 2; 92} 93 94#gNav.open{ 95 right: 0px; 96} 97 98#gNav .gNav-menu{ 99 width: 100%; 100 height:100%; 101 display: flex; 102 flex-direction: column; 103 text-align: left; 104 padding-top: 20px; 105 /*justify-content: left;*/ 106 107 animation-name: faderight; 108 animation-duration: 2s; 109} 110 111@keyframes faderight { 112 from { 113 opacity: 0; 114 transform: translateX(-100px); 115 } 116 to { 117 opacity: 1; 118 transform: translateX(0px); 119 } 120} 121 122#gNav .gNav-menu li{ 123 display: block; 124 padding-bottom: 14px; 125} 126 127#gNav .gNav-menu li a{ 128 color: #fff; 129 text-decoration: none; 130} 131 132 133

jQery

1$(function() { 2 $('.btn-gNav').on("click", function(){ 3 4 $(this).toggleClass('open'); 5 $('#gNav').toggleClass('open'); 6 }); 7 8}); 9 10// メニューをクリックされたら、非表示にする 11$(function() { 12 $('.gNav-menu li a').on("click", function(){ 13 $('#gNav').removeClass('open'); 14 }); 15});

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

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

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

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

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

tetosept

2021/10/13 15:34

hamburgerに関するposition fixed; position:absolute;両方とも削除してもだめでしたか? ちなみに削除した場合の表示は全く変わらない状況でしょうか
mamenekomameta

2021/10/14 03:00

ありがとうございます。 1.position:fixed; position:absolute;両方消すとspanが表示されなくなりました。 2.position:fixed; を消しても変わりません。 3.position:absolute;を消すとspanが表示されなくなりました。 どちらも表示は残し、position:fixed;のtopとrightの値を変更したところ位置が動きました。 ありがとうございます。
guest

回答2

0

ベストアンサー

.header-container #hamburger .btn-gNavposition: fixed;を設定しているので、ハンバーガーメニューは画面に対して固定されています。
これをposition: absollute;にして親要素に固定するようにすればよいのではないでしょうか。

投稿2021/10/14 00:41

itagagaki

総合スコア8402

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

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

mamenekomameta

2021/10/14 03:09

ありがとうございます。 やはりposition: fixedが固定されていた原因なんですね。 position: absolute;に変更したところ、問題なく移動できました。
guest

0

1.position:fixed; position:absolute;両方消すとspanが表示されなくなりました。
2.position:fixed; を消しても変わりません。
3.position:absolute;を消すとspanが表示されなくなりました。

どちらも表示は残し、position:fixed;のtopとrightの値を変更したところ位置が動きました。
ありがとうございます。

投稿2021/10/14 03:01

mamenekomameta

総合スコア7

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問