Tôi có một div có thể thu gọn CSS thuần túy dựa trên mã của người khác, người sử dụng :target
tân cổ điển. Những gì tôi đang cố gắng thiết lập là một trang có hơn 12 câu hỏi và khi bạn nhấp vào nút +, div câu trả lời sẽ mở rộng bên dưới. Tôi không thể tìm ra cách tạo nhiều phần tử div thu gọn trên trang này mà không cần viết thêm nhiều CSS. Bất cứ ai có đề xuất về cách viết điều này để mã CSS của tôi được giảm thiểu? (tức là, tôi không phải nhập một loạt các bộ chọn duy nhất cho mỗi câu hỏi trong số hơn 12 câu hỏi).
Tôi không thể sử dụng Javascript vì nó đang diễn ra trên một trang web wordpress.com không cho phép JS.
Đây là jfiddle của tôi: http://jsfiddle.net/dmarvs/94ukA/4/
<div class="FAQ">
<a href="#hide1" class="hide" id="hide1">+</a>
<a href="#show1" class="show" id="show1">-</a>
<div class="question"> Question Question Question Question Question Question Question Question Question Question Question? </div>
<div class="list">
<p>Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer </p>
</div>
</div>
/* source: http://www.ehow.com/how_12214447_make-collapsing-lists-java.html */
.FAQ {
vertical-align: top;
height:auto !important;
}
.list {
display:none;
height:auto;
margin:0;
float: left;
}
.show {
display: none;
}
.hide:target + .show {
display: inline;
}
.hide:target {
display: none;
}
.hide:target ~ .list {
display:inline;
}
/*style the (+) and (-) */
.hide, .show {
width: 30px;
height: 30px;
border-radius: 30px;
font-size: 20px;
color: #fff;
text-shadow: 0 1px 0 #666;
text-align: center;
text-decoration: none;
box-shadow: 1px 1px 2px #000;
background: #cccbbb;
opacity: .95;
margin-right: 0;
float: left;
margin-bottom: 25px;
}
.hide:hover, .show:hover {
color: #eee;
text-shadow: 0 0 1px #666;
text-decoration: none;
box-shadow: 0 0 4px #222 inset;
opacity: 1;
margin-bottom: 25px;
}
.list p{
height:auto;
margin:0;
}
.question {
float: left;
height: auto;
width: 90%;
line-height: 20px;
padding-left: 20px;
margin-bottom: 25px;
font-style: italic;
}