Reputation: 117
If I check a checkbox the drop down list should be shown only next to that one, but instead it appears for all the others under it.
Here is the css i use with the html code
.sub-nav { display: none; }
input[type=checkbox]:checked + label ~ .sub-nav { display: inline; }
<html>
<body>
<input type="checkbox" name="lingue" value="ing" id="ing"><label for="ing">Inglese</label> 
<select class="sub-nav">
<option value="ott">Ottimo</option>
<option value="buo">Buono</option>
<option value="suff">Sufficente</option>
<option value="scol">Scolastico</option>
<option value="pess">Pessimo</option>
</select>
<br>
<input type="checkbox" name="lingue" value="ted" id="ted"><label for="ted">Tedesco</label> 
<select class="sub-nav">
<option value="ott">Ottimo</option>
<option value="buo">Buono</option>
<option value="suff">Sufficente</option>
<option value="scol">Scolastico</option>
<option value="pess">Pessimo</option>
</select>
<br>
<input type="checkbox" name="lingue" value="fra" id="fra"><label for="fra">Francese</label> 
<select class="sub-nav">
<option value="ott">Ottimo</option>
<option value="buo">Buono</option>
<option value="suff">Sufficente</option>
<option value="scol">Scolastico</option>
<option value="pess">Pessimo</option>
</select>
<br>
<input type="checkbox" name="lingue" value="spa" id="spa"><label for="spa">Spagnolo</label> 
<select class="sub-nav">
<option value="ott">Ottimo</option>
<option value="buo">Buono</option>
<option value="suff">Sufficente</option>
<option value="scol">Scolastico</option>
<option value="pess">Pessimo</option>
</select>
</body>
</html>
Upvotes: 2
Views: 271
Reputation: 123397
You should use the immediate-adjacent sibling selector (+
) not the general sibling selector (~
)
.sub-nav { display: none; }
input[type=checkbox]:checked + label + .sub-nav { display: inline; }
<html>
<body>
<input type="checkbox" name="lingue" value="ing" id="ing"><label for="ing">Inglese</label> 
<select class="sub-nav">
<option value="ott">Ottimo</option>
<option value="buo">Buono</option>
<option value="suff">Sufficente</option>
<option value="scol">Scolastico</option>
<option value="pess">Pessimo</option>
</select>
<br>
<input type="checkbox" name="lingue" value="ted" id="ted"><label for="ted">Tedesco</label> 
<select class="sub-nav">
<option value="ott">Ottimo</option>
<option value="buo">Buono</option>
<option value="suff">Sufficente</option>
<option value="scol">Scolastico</option>
<option value="pess">Pessimo</option>
</select>
<br>
<input type="checkbox" name="lingue" value="fra" id="fra"><label for="fra">Francese</label> 
<select class="sub-nav">
<option value="ott">Ottimo</option>
<option value="buo">Buono</option>
<option value="suff">Sufficente</option>
<option value="scol">Scolastico</option>
<option value="pess">Pessimo</option>
</select>
<br>
<input type="checkbox" name="lingue" value="spa" id="spa"><label for="spa">Spagnolo</label> 
<select class="sub-nav">
<option value="ott">Ottimo</option>
<option value="buo">Buono</option>
<option value="suff">Sufficente</option>
<option value="scol">Scolastico</option>
<option value="pess">Pessimo</option>
</select>
</body>
</html>
Upvotes: 7