如何使用CSS为选中的复选框选择标签?

dll*_*ell 3 html css

我正在服务器端(HTML 代码)上编写一个 stringbuilder,并通过 ajax 向 jquery 函数发送响应,将这个 HTML 放在适当的位置。在服务器端决定哪个复选框将被选中。到现在为止还挺好。

我想为选中的复选框选择标签并更改颜色,以便选中的国家/地区的颜色不同。我的问题是我无法选择所需的标签并更改颜色属性。我尝试了你所看到的,当然还使用了类+>:before和其他奇怪的东西......

那么,如何选择它们并更改标签上的任何属性?

我想用 CSS 来做,我知道如何用 jquery 来做,但它似乎错了。

label + input.chkCountry[type="checkbox"]:checked  {color:green;}
Run Code Online (Sandbox Code Playgroud)
<ul class="chkbox">
  <li><label class="lblCountry" for="chkCC_AF"><input type="checkbox" class="chkCountry" id="chkCC_AF" name="chk_AF" value="AF" checked="checked">Afghanistan</label></li>
  <li><label class="lblCountry" for="chkCC_AL"><input type="checkbox" class="chkCountry" id="chkCC_AL" name="chk_AL" value="AL">Albania</label></li>
  <li><label class="lblCountry" for="chkCC_DZ"><input type="checkbox" class="chkCountry" id="chkCC_DZ" name="chk_DZ" value="DZ">Algeria</label></li>
  <li><label class="lblCountry" for="chkCC_AS"><input type="checkbox" class="chkCountry" id="chkCC_AS" name="chk_AS" value="AS">American Samoa</label></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

Sup*_*rDJ 7

您只需要更改 HTML 和选择器。在 CSS 中,标签不知道是否选中了复选框,因此您必须将其翻转。在 HTML 中,input不应在label元素中。

input.chkCountry[type="checkbox"]:checked + label  {color:green;}
/*input:checked + label  {color:green;} /* Short selector */
Run Code Online (Sandbox Code Playgroud)
<ul class="chkbox">
  <li>
    <input type="checkbox" class="chkCountry" id="chkCC_AF" name="chk_AF" value="AF" checked="checked">   
    <label class="lblCountry" for="chkCC_AF">Afghanistan</label>
  </li>
  <li>
    <input type="checkbox" class="chkCountry" id="chkCC_AL" name="chk_AL" value="AL">
    <label class="lblCountry" for="chkCC_AL">Albania</label>
  </li>
  <li>
    <input type="checkbox" class="chkCountry" id="chkCC_DZ" name="chk_DZ" value="DZ">
    <label class="lblCountry" for="chkCC_DZ">Algeria</label>
  </li>
    <li><input type="checkbox" class="chkCountry" id="chkCC_AS" name="chk_AS" value="AS">
    <label class="lblCountry" for="chkCC_AS">American Samoa</label>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)