我有一些無線電選項,我想要顯示/隱藏類。我有一些有這些類的div。有沒有辦法使用CSS來顯示/隱藏不是兄弟姐妹的元素?
HTML:
<input type="radio" class="one radioselect" value="one" id="one" name="opts" /> <label for="one" class="select radlabel">one</label>
<input type="radio" class="two radioselect" value="two" id="two" name="opts" /> <label for="two" class="select radlabel">two</label>
<div class="one">abc</div>
<div class="two">def</div>
CSS:
input.one:checked ~ a.one { display:inline; }
input.two:checked ~ a.two { display:inline; }
input.one:checked ~ a:not(.one) { display:none; }
input.two:checked ~ a:not(.two) { display:none; }
現在我的標記必須是這樣的:
<div class="row">
<input type="radio" class="one radioselect" value="one" id="one" name="opts" /> <label for="one" class="select radlabel">one</label>
<input type="radio" class="two radioselect" value="two" id="two" name="opts" /> <label for="two" class="select radlabel">two</label>
</div>
<div class="one">abc</div>
<div class="two">def</div>
新的標記意味着輸入不再是兄妹的div和CSS不再適用(據我所知)。 我已經嘗試了所有我能想到的選擇器組合,也許這對於純CSS來說是不可能的。我的目標是避免JavaScript可以在CSS中工作。如果這是一個解決方案,我願意研究SASS/LESS。
不可能使用您指定的HTML。單選按鈕是否可見?如果不是的話,你可以把它們放在'.row'之外(*和以前一樣*),並將'label'元素保存在'.row'中。 –
這可能工作。我會盡快回復您,但如果確實有效,我無法選擇您的評論作爲答案。 – RHebel