CSSとHTMLのみでアコーディオンを作りたいのですが、うまくいきません。
アコーディオンAをクリックしたらアコーディオンが開きaaa・bbb・cccを表示、
アコーディオンBをクリックしたらアコーディオンが開きddd・eee・fffを表示、
というものを作りたいのですが、アコーディオンAをクリックすると aaa・bbb・ccc だけでなく ddd・eee・fff も表示されてしまいます。
また、アコーディオンをクリックする前から aaa・bbb・ccc ddd・eee・fff それぞれあるだろう位置にスペースができてしまっています。
どうすればうまくいくでしょうか?
HTML
1<div class="table"> 2 <input type="checkbox" id="acd-btn01" class="acd-check"> 3 <label class="row acd-label" for="acd-btn01"> 4 <div class="cell">アコーディオンA</div> 5 <div class="cell">親</div> 6 </label> 7 <div class="row"> 8 <div class="cell">aaa</div> 9 <div class="cell">子</div> 10 </div> 11 <div class="row"> 12 <div class="cell">bbb</div> 13 <div class="cell">子</div> 14 </div> 15 <div class="row"> 16 <div class="cell">ccc</div> 17 <div class="cell">子</div> 18 </div> 19 <input type="checkbox" id="acd-btn02" class="acd-check"> 20 <label class="row acd-label" for="acd-btn02"> 21 <div class="cell">アコーディオンB</div> 22 <div class="cell">親</div> 23 </label> 24 <div class="row"> 25 <div class="cell">ddd</div> 26 <div class="cell">子</div> 27 </div> 28 <div class="row"> 29 <div class="cell">eee</div> 30 <div class="cell">子</div> 31 </div> 32 <div class="row"> 33 <div class="cell">fff</div> 34 <div class="cell">子</div> 35 </div> 36</div>
css
1div.table { 2 display: table; 3 width: 100%; 4} 5div.table .row { 6 display: table-row; 7} 8div.table .cell { 9 display: table-cell; 10 font-size: 1.1em; 11 height: 2.3em; 12 line-height: 2.3em; 13 padding: 0 10px; 14} 15.acd-check { 16 display: none; 17} 18.acd-content { 19 height: 0; 20 opacity: 0; 21 visibility: hidden; 22} 23.acd-check:checked + .acd-label ~ .acd-content { 24 height: 2.3em; 25 opacity: 1; 26 visibility: visible ; 27}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。