2013-06-11 36 views
11

Tôi có HTML sau trong trang của mình.CSS: cách chọn anh chị em của cha mẹ

<ul id="detailsList"> 
    <li> 
     <input type="checkbox" id="showCheckbox" /> 
     <label for="showCheckbox">Show Details</label> 
    </li> 
    <li>content ...</li> 
    <li>content ...</li> 
    <li>content ...</li> 
    <li>content ...</li> 
    <li>content ...</li> 
</ul> 

Tôi không thể thay đổi HTML này. Tôi đã ẩn tất cả LI với ngoại lệ đầu tiên bằng cách sử dụng CSS sau đây

ul#detailsList li:nth-child(1n+2) { 
    display:none; 
} 

Cho đến nay rất tốt. Những gì tôi muốn làm bây giờ là để hiển thị những LI ẩn khi hộp kiểm được đánh dấu, sử dụng CSS tinh khiết. nỗ lực hết sức mình cho đến nay là

ul#detailsList li input#showCheckbox:checked + li { 
    display:block; 
} 

Rõ ràng điều này không làm việc, như + li sẽ chỉ chọn ngay sau khi hộp kiểm (ví dụ: anh chị em) LI, chứ không phải anh em ruột của cha mẹ.

Điều này có thể thực hiện được không?

+0

CSS không cho phép bạn chọn các yếu tố cha mẹ. Chỉ có các phần tử con và anh chị em mới được hỗ trợ. –

+0

câu trả lời đơn giản không - css không có công cụ chọn lọc thực sự – Pete

Trả lời

8

Bạn không thể làm điều đó với CSS nhưng

Bạn có thể thử sử dụng jQuery

$("#showCheckbox").click(function(){ 
    $(this).parent().siblings().show(); 
}); 
+0

Đó là những gì tôi đã tìm ra, nhưng tôi nghĩ rằng tôi sẽ hỏi chỉ trong trường hợp. Cảm ơn vì lời khuyên. – Typhoon101

1

Bạn không thể làm điều đó với CSS một mình, bạn cần sử dụng javascript cho việc này. Vì bạn cần nắm bắt sự kiện thay đổi của hộp kiểm.

Các vấn đề liên quan