HTMLでQAリストとしてアコーディオンを作りたく、実装自体はできているのですが、いくつか分からないことがあり質問します。
それぞれのコードが
HTML
1 <div class="qa-list mts"> 2 <dl class="qa"> 3 <dt>タイトル1</dt> 4 <dd> 5 <p>内容1</p> 6 </dd> 7 </dl> 8 <dl class="qa"> 9 <dt>タイトル2</dt> 10 <dd> 11 <p>内容2</p> 12 </dd> 13 </dl> 14 </div>
CSS
1 2.qa-list dl { 3 position: relative; 4 margin: 30px 0 0; 5 cursor: pointer; 6 border: 1px solid #DDD; 7 border-width:2px 0px 2px 0px; 8} 9 10.qa-list dl:first-child { 11 margin-top: 0; 12} 13 14.qa-list dl::after { 15 position: absolute; 16 top: 27px; 17 right: 26px; 18 display: block; 19 width: 7px; 20 height: 7px; 21 margin: auto; 22 content: ''; 23 transform: rotate(135deg); 24 border-top: 2px solid #000; 25 border-right: 2px solid #000; 26} 27 28.qa-list .open::after { 29 transform: rotate(-45deg); 30} 31 32.qa-list dl dt { 33 position: relative; 34 margin: 0; 35 padding: 20px 20px 20px 60px; 36 font-weight: bold; 37 background: #FFF; 38} 39 40.qa-list dl dt::before { 41 font-size: 22px; 42 line-height: 1; 43 position: absolute; 44 top: 20px; 45 left: 20px; 46 display: block; 47 content: 'Q.'; 48 color: #C59C45; 49} 50 51.qa-list dl dd::before { 52 font-size: 22px; 53 line-height: 1; 54 position: absolute; 55 left: 20px; 56 display: block; 57 content: 'A.'; 58 font-weight: bold; 59 color: #5DADBB; 60} 61 62.qa-list dl dd { 63 position: relative; 64 margin: 0; 65 padding: 20px 20px 20px 60px; 66 background: #f1f1f1; 67} 68 69.qa-list dl dd p { 70 margin: 30px 0 0; 71} 72 73.qa-list dl dd p:first-child { 74 margin-top: 0; 75} 76 77@media screen and (max-width: 767px) { 78 .qa-list dl { 79 margin: 10px 0 0; 80 } 81 .qa-list dl:after { 82 top: 20px; 83 right: 20px; 84 width: 7px; 85 height: 7px; 86 } 87 .qa-list dl dt { 88 padding: 16px 16px 16px 50px; 89 font-size: 14px; 90 } 91 .qa-list dl dt::before { 92 font-size: 14px; 93 top: 20px; 94 left: 20px;![![イメージ説明](cb383e735848d9dd7bf7cfa9a912224a.png)](eaea7c9d07010e9915bcbdef42e63db5.png) 95 } 96 .qa-list dl dd::before { 97 font-size: 14px; 98 left: 20px; 99 margin-top: 5px; 100 } 101 .qa-list dl dd { 102 margin: 0; 103 padding: 16px 16px 16px 50px; 104 font-size: 14px; 105 } 106 .qa-list dl dd p { 107 margin: 30px 0 0; 108 } 109 .qa-list dl dd p:first-child { 110 margin-top: 0; 111 } 112}
JS
1window.addEventListener('DOMContentLoaded', function(){ 2 $(".qa-list dd").hide(); 3 $(".qa-list dl").on("click", function(e){ 4 $('dd',this).slideToggle('fast'); 5 $(this).toggleClass('open'); 6 }); 7});
このようになってしまいます。
- それぞれの幅をゼロにしてタイトル1の下線がタイトル2の上部の線になるように変更したいです。
また、
- 「Q」の文字を同様のサイズ感の画像を挿入したいのですが、それについてもどのように変更したらいいのでしょうか?
CSSが覚束なく、どれを変更したらいいのか分からず教えて頂けませんでしょうか?
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー