我有一个单选按钮序列,然后是其他dom元素。现在,我想隐藏除所选单选按钮之后的所有元素。
<div id="gallery" data-role="image-slider">
<input type="radio" />
<div class="image-slider-element">
<img src="" />
</div>
<input type="radio" />
<div class="image-slider-element">
<img src="" />
</div>
<input type="radio" checked="checked" />
<div class="image-slider-element">
<img src="" />
</div>
<input type="radio" />
<div class="image-slider-element">
<img src="" />
</div>
</div>
[data-role="image-slider"] > input[type="radio"] ~ .image-slider-element {
display: none;
}
[data-role="image-slider"] > input[type="radio"]:checked ~ .image-slider-element {
display: block;
}
[data-role="image-slider"] img {
height: 400px;
}
问题是,(在这种情况下)不仅会显示第三个元素,而且还是会显示第四个元素。所以有什么主意,我如何才能在选中的元素之后立即显示该元素,而不是在此之后全部显示?
[data-role="image-slider"] > input[type="radio"]:checked ~ .image-slider-element:first-child
将不起作用,因为first-child
仅与第一个元素相关。
答案 0 :(得分:1)
好的-抱歉,很长一段时间... +
可以正常工作
[data-role="image-slider"] > input[type="radio"]:checked + .image-slider-element {
display: block;
}