2013-06-11 21 views
11

Ich habe den folgenden HTML in meiner Seite.CSS: wie Eltern Geschwister auswählen

<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> 

Ich kann diesen HTML nicht ändern. Ich habe alle LI mit Ausnahme der ersten unter Verwendung der folgenden CSS versteckt

So weit so gut. Ich möchte nun die versteckten LI's anzeigen, wenn das Kontrollkästchen aktiviert ist und reines CSS verwendet. Mein bester Versuch so weit ist

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

Offensichtlich ist dies nicht funktioniert, wie die + li nur sofort die LI wählen wird nach der Checkbox (das heißt Geschwister), nicht Geschwister der Eltern.

Ist das überhaupt möglich?

+0

CSS können Sie keine übergeordnete Elemente auszuwählen. Nur Geschwister- und untergeordnete Elemente werden unterstützt. –

+0

einfache antwort nein - css hat keinen prarent Selektor – Pete

Antwort

8

Sie können nicht mit CSS tun, dass aber

können Sie versuchen, mit jQuery

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

Das ist, was ich dachte, aber dachte, ich würde nur für den Fall fragen. Danke für den Hinweis. – Typhoon101

1

Sie können es nicht mit CSS allein tun, müssen Sie dafür javascript verwenden. Da Sie das Änderungsereignis des Kontrollkästchens abfangen müssen.

Verwandte Themen