デザインカンプから模写をしています。
ハンバーガーメニューをクリックすると、メニュー一覧が表示されるメニューバーを作ろうとしています。
クリック後のメニュー画面が、なぜか親要素を超えてしまい、大きくはみ出してしまいます。
全て相対指定しているのに、はみだしている意味が分かりません。
どのようにすれば、親要素におさまるのでしょうか?
このメニュー画面のせいで、右側に大きな余白が出てしまっているようです。
メニュー画面の右上にあるバツ印が、親要素の幅の目安です。
問題個所の二点を画像としてアップしておりますが、より分かりやすくするために、こちらにサイトをアップロードしました。ご確認のほどお願いいたします。
メニュー画面のはみだしをなくして、右側に出ている余白を直したいです。
試しにヘッダーを全て消去したり、メニュー画面を消去したりしても、右側の余白が消えませんでした。本当に謎です。
よろしくお願いいたします。
試したこと
<div class="header"> <img src="/images/SP-TOP/backimg-menu.png" alt="" class="header-img-active"> <a href="index.html" class="header-top">PON DESIGN</a> <!-- メニュー(PC) --> <header class="header-nav"> <nav> <ul class="nav-list"> <li class="nav-item"> <a href="/news/news.html">NEWS</a> </li> <li class="nav-item"> <a href="/service/service.html">SERVICE</a> </li> <li class="nav-item"> <a href="/works/works.html">WORKS</a> </li> <li class="nav-item"> <a href="/company/company.html">COMPANY</a> </li> <li class="nav-item"> <a href="/recruit/recruit.html">RECRUIT</a> </li> <li class="nav-item"> <a href="/contact/contact.html">CONTACT</a> </li> </ul> </nav> </header> <!-- トップセクション --> <div class="title"> <h1 class="title-tx">WEB DESIGN SPECIALIST</h1> <p class="title-lead">お客様の夢を叶えるWebサイトを制作</p> <div class="btn-contact"> <a href="/contact/contact.html">CONTACT</a> </div> <div class="scroll"> SCROLL <div class="border"> <!-- borderの擬似要素 --> </div> </div> </div> <!-- ハンバーガーメニュー --> <header id="header"> <div class="menu-btn"> <span></span> <span></span> <span></span> </div> <nav class="gnavi__sp-style"> <ul> <li><a href="/news/news.html">NEWS</a></li> <li><a href="/service/service.html">SERVICE</a></li> <li><a href="/works/works.html">WORKS</a></li> <li><a href="/company/company.html">COMPANY</a></li> <li><a href="/recruit/recruit.html">RECRUIT</a></li> <li><a href="/contact/contact.html">CONTACT</a></li> </ul> </nav> </header> </div> コード
.header-nav { display: none; } .header { background-image: url('/images/SP-TOP/hero@2x.jpg'); background-size: cover; height: 812px; .header-top { color: white; display: block; width: 130px; font-size: 18px; font-weight: bold; padding: 20px 0 0 15px; text-decoration: none; } .header-top:hover { opacity: 0.8; } .header-active { display: none; } .header-img-active { display: none; } .header-menu { display: flex; justify-content: space-between; align-items: center; padding: 0 20px; background: #fff; } #header{ .gnavi__sp-style { display: none; } @media screen and (max-width: 1150px) { .gnavi__sp-style { display: block; } /*メニューボタン 展開前*/ .menu-btn { display : block; position: absolute; z-index: 3; right: 30px; top: 20px; width: 42px; height: 42px; cursor: pointer; text-align: center; } .menu-btn span { display : block; position: absolute; width: 30px; height: 2px ; left: 6px; background: white; transition: 0.3s ease-in-out; } .menu-btn span:nth-of-type(1) { top: 10px; } .menu-btn span:nth-of-type(2) { top: 20px; } .menu-btn span:nth-of-type(3) { top: 30px; } /*メニューボタン 展開後*/ .menu-btn.active span:nth-child(1) { top: 16px; left: 6px; background :#fff; transform: rotate(-45deg); } .menu-btn.active span:nth-child(2), .menu-btn.active span:nth-child(3) { top: 16px; background :#fff; transform: rotate(45deg); } /*スマホ用のメニュー*/ .gnavi__sp-style { position: fixed; z-index: 2; top: 0; left: 0; color: #fff; background: url("/images/SP-TOP/backimg-menu@2x.png"); text-align: center; width: 100%; height: 100%; opacity: 0; transition: opacity .6s ease, visibility .6s ease; display: flex; align-items: center; } .gnavi__sp-style ul { margin: 0 auto; padding: 0; width: 100%; } .gnavi__sp-style ul li { list-style-type: none; padding: 0; width: 100%; transition: .4s all; } .gnavi__sp-style ul li:last-of-type { padding-bottom: 0; } .gnavi__sp-style ul li:hover{ background :#ddd; } .gnavi__sp-style ul li a { display: block; color: #fff; padding: 1em 0; text-decoration :none; } .gnavi__sp-style a:hover { color: black; } .gnavi__sp-style.active { opacity: 1; } } } } コード