Tôi đang cố tạo một trang HTML có chức năng kiểu accordion. Trước hết, tôi có bộ chọn CSS đơn giản này, cho biết "nếu H1 là ngay sau H1 khác, làm nền đỏ".Ẩn các phần tử cho các quy tắc chọn CSS
<style type="text/css">
h1 + h1
{
background-color: red;
}
</style>
Sau đó, một số HTML đơn giản:
<h1>First</h1>
<p>Blah, blah...</p>
<h1>Second</h1>
<p>Blah, blah...</p>
<h1>Third</h1>
<p>Blah, blah...</p>
Tất cả các H1s trông giống như họ nên, không ai có một nền đỏ, bởi vì họ đang preceeded bởi một thẻ P.
Đối với điều này:
<h1>First</h1>
<h1>Second</h1>
<p>Blah, blah...</p>
<h1>Third</h1>
<p>Blah, blah...</p>
Các H1 thứ hai có nền đỏ, vì thẻ P giữa nó và H1 trước được lấy ra. Rất đẹp.
Bây giờ, những gì tôi thực muốn làm là để lập trình ẩn "nội dung" bên dưới H1s và sau đó tôi muốn thấy các đá màu đỏ-quy tắc trong Như thế này:.
<h1>First</h1>
<p>Blah, blah...</p>
<h1>Second</h1>
<p style="display: none">Blah, blah...</p>
<h1>Third</h1>
<p>Hello world...</p>
Nhưng vì thẻ P vẫn ở đó, quy tắc CSS không áp dụng cho H1 thứ ba và không có nền màu đỏ.
Câu hỏi: Có cách nào để áp dụng điều gì đó bằng cách sử dụng JavaScript cho thẻ P sẽ khiến chúng (tạm thời) bị bỏ qua bởi quy tắc CSS không ??
Tại sao '* [lớp ~ = 'ẩn'] + h1' và không phải '.hidden + h1'? – BoltClock
Vâng, tôi cũng nhận ra điều đó một chút. Tôi đã cập nhật mẫu của mình. Cảm ơn. :) –