ハンバーガーメニューを作ってます。
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});
回答2件
あなたの回答
tips
プレビュー