HTMLとCSSでアコーディオンメニューを作りました。
メニューをクリックすると表示し、再度クリックすると非表示になります。
修正したいところ、
特定のメニューをクリックすると開いていたメニューが自動的に閉じる。
クリックしたときの動きを滑らかにしたい。
この2点がどうしてもうまくいきません。
どのあたりを修正したらよいか、アドバイスをいただけると助かります。
また、できればクリックして表示ではなく、マウスオーバーして表示非表示の操作にしたいのですが、今の記述で可能でしょうか。
html
1<div class="menu"> 2<label for="menu_bar07" class="label1"><a href="#top">TOP</a></label> 3 4<label for="menu_bar01" class="label1">工事</label> 5 <input type="checkbox" id="menu_bar01" class="accordion" /> 6 <ul id="links01"> 7 <li><a href="#kozi1">工事1</a></li> 8 <li><a href="#kozi2">工事2</a></li> 9 </ul> 10 <label for="menu_bar02" class="label1">機器修理</label> 11 <input type="checkbox" id="menu_bar02" class="accordion" /> 12 <ul id="links02"> 13 <li><a href="#shuri">修理</a></li> 14 <li><a href="#shiyou">使用方法</a></li> 15 </ul> 16 <label for="menu_bar03" class="label1">未分類</label> 17 <input type="checkbox" id="menu_bar03" class="accordion" /> 18 <ul id="links03"> 19 <li><a href="#kiki">機器</a></li> 20 <li><a href="#mibunrui">未分類</a></li> 21 </ul> 22</div></div>
css
1.menu li { 2 max-height: 0; 3 overflow-y: hidden; 4} 5 6#menu_bar01:checked ~ #links01 li, 7#menu_bar02:checked ~ #links02 li, 8#menu_bar03:checked ~ #links03 li, 9#menu_bar04:checked ~ #links04 li, 10#menu_bar05:checked ~ #links05 li, 11#menu_bar06:checked ~ #links06 li { 12 max-height: 46px; 13 opacity: 1; 14} 15 16.menu { 17 max-width: 400px; 18 margin: 0 auto; 19 padding: 0; 20} 21 22.menu a { 23 display: block; 24 padding: 10px; 25 text-decoration: none; 26 color: #000; 27 line-height: 1; 28} 29 30.label1 { 31 display: block; 32 margin: 0 0 2px 0; 33 padding :12px; 34 line-height: 1; 35 color :#fff; 36 background :#007bbb; 37 cursor :pointer; 38} 39 40input { 41 display: none; 42} 43 44.menu ul { 45 margin: 0; 46 padding: 0; 47 background :#f4f4f4; 48 list-style: none; 49} 50 51.menu li { 52 max-height: 0; 53 overflow: hidden; 54 -webkit-transition: height 0.3s; 55 -moz-transition: height 0.3s; 56 -ms-transition: height 0.3s; 57 -o-transition: height 0.3s; 58 transition: height 0.3s; 59} 60 61#menu_bar01:checked ~ #links01 li, 62#menu_bar02:checked ~ #links02 li { 63 max-height: 46px; 64 opacity: 1; 65}