【发布时间】:2017-12-05 13:37:08
【问题描述】:
我有一个复选框和标签列表。选中复选框时,我正在使用此 CSS 将样式应用于标签:
input[type=checkbox]:checked + .CheckLabels {background-color: green;}
当我这样订购我的 HTML 时:
<input type="checkbox" name="C" id="checkC" value="C" checked>
<label class="CheckLabels" for="checkC">C</label>
<input type="checkbox" name="D" id="checkD" value="D" checked>
<label class="CheckLabels" for="checkD">D</label>
它按预期工作:单击 C 标签添加或删除绿色样式。但是,当我在输入之前放置标签 时,单击标签会导致 following 标签应用/删除样式。即:单击 C 标签添加或删除 D 标签中的绿色(尽管仍然选中了正确的复选框。)
<label class="CheckLabels" for="checkC">C</label>
<input type="checkbox" name="C" id="checkC" value="C" checked>
<label class="CheckLabels" for="checkD">D</label>
<input type="checkbox" name="D" id="checkD" value="D" checked>
为什么会这样?我并不特别关注标签和复选框的顺序,因为我将使用display:none。但很高兴知道发生了什么。
【问题讨论】:
-
如果您只是想了解
+选择器,这个问题与stackoverflow.com/questions/1139763/… 重复