以下のようなコードで.btn1やbtn2をCSSで全て指定したとしたら冗長なコードになってしまいました。
nth-childも試しましたが、うまく動作してくれません。
1つずつボタンを押したかの判定を行いたいので、btn1やbtn2などのように分けています。
どうにかしてCSSでもう少し短くできないでしょうか?
SCSSで変数としてforするしかないのでしょうか?
HTML
1<div class="container"> 2 <button type="button" class="buttons btn1" 3 onclick="document.querySelector('.btn1').classList.toggle('clicked')">家賃 4 <div class="cost">80,000円</div> 5 </button> 6 <button type="button" class="buttons btn2" 7 onclick="document.querySelector('.btn2').classList.toggle('clicked')">光熱費 8 <div class="cost">5,000円</div> 9 </button> 10 <button type="button" class="buttons btn3" 11 onclick="document.querySelector('.btn3').classList.toggle('clicked')">水道代 12 <div class="cost">5,000円</div> 13 </button> 14 <button type="button" class="buttons btn4" 15 onclick="document.querySelector('.btn4').classList.toggle('clicked')">通信費 16 <div class="cost">5,000円</div> 17 </button> 18 <button type="button" class="buttons btn5" 19 onclick="document.querySelector('.btn5').classList.toggle('clicked')">食費 20 <div class="cost">40,000円</div> 21 </button> 22 <button type="button" class="buttons btn6" 23 onclick="document.querySelector('.btn6').classList.toggle('clicked')">音楽 24 <div class="cost">1,000円</div> 25 </button> 26 <button type="button" class="buttons btn7" 27 onclick="document.querySelector('.btn7').classList.toggle('clicked')">動画 28 <div class="cost">2,000円</div> 29 </button> 30 <button type="button" class="buttons btn8" 31 onclick="document.querySelector('.btn8').classList.toggle('clicked')">Offce関連 32 <div class="cost">1,000円</div> 33 </button> 34 </div>
CSS
1.buttons.btn1.clicked { 2 box-shadow: none; 3 transform: translateY(0); 4 color: rgba(0, 0, 0, 0.25); 5} 6.buttons.btn2.clicked { 7 box-shadow: none; 8 transform: translateY(0); 9 color: rgba(0, 0, 0, 0.25); 10} 11.buttons.btn3.clicked { 12 box-shadow: none; 13 transform: translateY(0); 14 color: rgba(0, 0, 0, 0.25); 15} 16.buttons.btn4.clicked { 17 box-shadow: none; 18 transform: translateY(0); 19 color: rgba(0, 0, 0, 0.25); 20} 21.buttons.btn5.clicked { 22 box-shadow: none; 23 transform: translateY(0); 24 color: rgba(0, 0, 0, 0.25); 25} 26.buttons.btn6.clicked { 27 box-shadow: none; 28 transform: translateY(0); 29 color: rgba(0, 0, 0, 0.25); 30} 31.buttons.btn7.clicked { 32 box-shadow: none; 33 transform: translateY(0); 34 color: rgba(0, 0, 0, 0.25); 35} 36.buttons.btn8.clicked { 37 box-shadow: none; 38 transform: translateY(0); 39 color: rgba(0, 0, 0, 0.25); 40}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。