前提・実現したいこと
現在CSS/htmlのコーディングを勉強中です。jQueryでアコーディオンメニューを実装したのですが、画面をロードした時点からアコーディオンメニューが開いた状態で表示されます。
おそらく、display:inline-grid;を適用しているからだと思います。
これをロードした時点では閉じた状態にしたいと思い、display:none;を書いたのですが、display:inline-gridに戻すことができません。
どのようにすればロード時に閉じた状態、開いたらinline-gridの状態にできるのでしょうか。
該当のソースコード
html
1<div id="header_nav_SP"> 2 <ul> 3 <li><a href="#"><img src="./images/top_sp/fb.png" alt="facebook"></a></li> 4 <li><a href="#"><img src="./images/top_sp/insta.png" alt="instagram"></a></li> 5 <img id="sp_navi_btn" src="./images/top_sp/menu_icon.png" alt="menu"> 6 <ul class="sp_navi_li"> 7 <li><a href="index.html">ログイン</a></li> 8 <li><a href="news.html">カート</a></li> 9 <li><a href="company.html">マイページ</a></li> 10 <li><a href="#shopping-guide">ショッピングガイド</a></li> 11 </ul> 12 </ul> 13</div>
JS
1 <script> //ハンバーガーメニュー用js 2 $(function(){ 3 $(document).ready(function(){ 4 5 $("#sp_navi_btn").click(function () { 6 $(this).next().slideToggle(); 7 }); 8 9 }); 10 }); 11 </script>
sass
1.sp_navi_li{ 2 display:inline-grid; 3 width: 100%; 4 position: relative; 5 border: 1px solid #eee; 6 background-color:#ff6d77;; 7 margin: 0; 8 padding: 10px 0 10px 0; 9 z-index:100; 10 11 12 li{ 13 14 background-color:#ff6d77; 15 text-align: left; 16 list-style: none; 17 margin: 0; 18 padding: 13px 0 13px 0; 19 20 21 a{ 22 font-size:20px; 23 color: #FFF; 24 display: block; 25 padding: 22px 0px; 26 margin: 0px 15px; 27 border-bottom: 1px solid #eee; 28 font-size: 14px; 29 text-decoration: none; 30 } 31 li:last-child:after{ 32 border-bottom:none; 33 } 34 35 } 36 37 } 38.sp_navi_li{ 39 li:last-child{ 40 a{ 41 border-bottom:none; 42 } 43 } 44}
試したこと
display:none;を追記 ← ロード時の表示を消すことができましたが、アコーディオンメニューが縦表示にならず横並びになってしまいます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。