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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

1回答

1127閲覧

ハンバーガーメニューが常時開いていて閉じられない

bluemo

総合スコア0

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2021/07/22 06:29

前提・実現したいこと

WordPressで作成したサイトにて、ハンバーガーメニューが(どのページに遷移しても)常時開きっぱなしになり、閉じることができません。
ハンバーガーボタンを押した時にメニューが開き、閉じることができる状態にしたいのですが、
他サイトを参照し、CSSを編集したりしたのですが、一向に改善されず、困っております。

大変申し訳ないのですが、初心者のため、わかりやすく詳細に教えて頂ける方、何卒よろしくお願いいたします。

発生している問題

ハンバーガーメニューが常時開いた状態になり、閉じることができない

該当のソースコード

CSS

1/* RESPONSIVE 設定 2------------------------------------------------------------*/ 3 4@media only screen and (min-width: 760px){ 5 body{ 6 font-size:15px; 7 } 8 9 a#menu{ 10 display:none; 11 } 12 13 .panel{ 14 display:block !important; 15 padding-bottom: 50px; 16 } 17 #mainnav li{ 18 display: inline-block; 19 position: relative; 20 padding: 0 30px; 21 font-size: 14px; 22 } 23 #mainnav li a{ 24 display: block; 25 } 26 #mainnav li ul{ 27 display: none; 28 } 29 #mainnav li:hover ul{ 30 display: block; 31 position: absolute; 32 width: 100%; 33 top: 25px; 34 left: 0; 35 z-index: 500; 36 background: rgba(255,255,255,.8) 37 } 38 #mainnav li li{ 39 padding: 10px; 40 line-height: 1.5; 41 border-bottom: 1px solid #fff; 42 text-align: left; 43 } 44 45} 46 47@media only screen and (min-width: 981px){ 48 .col3{ 49/* margin: 0 -10px;*/ 50 margin: 20px auto; 51 } 52 53 .col3 > li{ 54 display: inline-block; 55 width: 30%; 56 margin-bottom: 50px; 57 vertical-align: top; 58 text-align: left; 59 } 60} 61 62 63@media only screen and (max-width: 980px){ 64 .col3 > li{ 65 width: 80%; 66 margin: 0 auto 30px; 67 } 68 .header{ 69 width: 80%; 70 margin-bottom: 30px; 71 } 72 .header h1 span{ 73 padding: 0 15px; 74 } 75 #mainImg img{ 76 margin-bottom: 0; 77 } 78 .innerS{ 79 width: 80%; 80 padding-bottom: 30px; 81 } 82} 83 84 85@media only screen and (max-width: 799px){ 86 #header{ 87 position: fixed; 88 width: 100%; 89 z-index: 500; 90 } 91 #headerWrap{ 92 position: relative; 93 width: 100%; 94 height: 70px; 95 background: #fff; 96 border-bottom: 1px solid #ccc; 97 } 98 #logo{ 99 padding-top: 10px; 100 } 101 #logo img{ 102 max-height: 45px; 103 width: auto !important; 104 transform: scale(1); 105 } 106 a#menu{ 107 display: inline-block; 108 position: relative; 109 width: 40px; 110 height: 40px; 111 margin: 10px; 112 } 113 114 #menuBtn{ 115 display: block; 116 position: absolute; 117 top: 50%; 118 left: 50%; 119 width: 18px; 120 height: 2px; 121 margin: -1px 0 0 -7px; 122 background: #000; 123 transition: .2s; 124 } 125 #menuBtn:before, #menuBtn:after{ 126 display: block; 127 content: ""; 128 position: absolute; 129 top: 50%; 130 left: 0; 131 width: 18px; 132 height: 2px; 133 background: #000; 134 transition: .3s; 135 } 136 137 #menuBtn:before{ 138 margin-top: -7px; 139 } 140 141 #menuBtn:after{ 142 margin-top: 5px; 143 } 144 145 a#menu .close{ 146 background: transparent !important; 147 } 148 149 a#menu .close:before, a#menu .close:after{ 150 margin-top: 0; 151 } 152 153 a#menu .close:before{ 154 transform: rotate(-45deg); 155 -webkit-transform: rotate(-45deg); 156 } 157 158 a#menu .close:after{ 159 transform: rotate(-135deg); 160 -webkit-transform: rotate(-135deg); 161 } 162 163 .panel{ 164 width: 100%; 165 display: none; 166 overflow: hidden; 167 position: relative; 168 left: 0; 169 top: 0; 170 z-index: 100; 171 } 172 #mainnav{ 173 position: absolute; 174 top: 0; 175 width: 100%; 176 text-align: right; 177 z-index:800; 178 } 179 #mainnav ul{ 180 background: #fff; 181 text-align: left; 182 } 183 #mainnav ul ul li{ 184 padding-left: 20px; 185 } 186 187 #mainnav li a{ 188 189 padding:15px 25px; 190 border-bottom: 1px solid #ccc; 191 color: #000; 192 font-weight: 400; 193 } 194 #mainnav li.menu-item-has-children a{ 195 border-bottom: 0; 196 } 197 #mainnav li.menu-item-has-children{ 198 border-bottom: 1px solid #ccc; 199 } 200 #mainnav li a:before{ 201 display: block; 202 content: ""; 203 position: absolute; 204 top: 50%; 205 left: 5px; 206 width: 6px; 207 height: 6px; 208 margin: -4px 0 0 0; 209 border-top: solid 2px #000; 210 border-right: solid 2px #000; 211 -webkit-transform: rotate(45deg); 212 transform: rotate(45deg); 213 } 214 #mainImg{ 215 padding-top: 70px; 216 z-index: -100; 217 } 218 #mainImg .msg {top: 90px;left: calc(50% - 150px);} 219 section{ 220 padding-top: 100px; 221 } 222 section#toppage{ 223 padding-top: 30px; 224 } 225 section h2{ 226 margin: 0 auto 20px; 227 } 228 section h2 span { 229 padding: 0 30px; 230 } 231 .alignright, .alignleft{ 232 float: none; 233 display: block; 234 margin: 10px auto; 235 } 236}

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

使用したテンプレートは「tpl_090_rwd」です。
その他必要な情報等ございましたら、お知らせいただけると助かります。

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

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

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

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

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

momotuwo

2021/07/22 06:30

html/jsも記載いただかないと 回答がつきにくいかと思います。
guest

回答1

0

まず、初期状態で、メニューを非表示にするのはどうでしょうか。

開いているメニューの要素を、スタイルシートで display: none; とすると、非表示になると思います。

ハンバーガーボタンを押した時にメニューが開き

そうですね、ハンバーガーボタンを押したときに、「ボタンが押された」ということをJavaScriptで検出することができます。

JavaScirptでクリックイベントを検出して、
メニューの要素を、display: block; に戻してあげると、実現できそうに思います。

投稿2021/07/22 11:19

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問