Html 如何针对选中的单选按钮(CSS)

Html 如何针对选中的单选按钮(CSS),html,css,Html,Css,我是一个业余编码爱好者,但我想通过CSS设计单选按钮。我已经设法禁用了输入字段,并在标签上添加了bg图像 然而,我不知道我如何能针对选中的标签。。。如果选中,我希望它们的不透明度为1 <label for="edd-gateway-manual" class="edd-gateway-option edd-gateway-option-selected" id="edd-gateway-option-manual"> <input type="r

我是一个业余编码爱好者,但我想通过CSS设计单选按钮。我已经设法禁用了输入字段,并在标签上添加了bg图像

然而,我不知道我如何能针对选中的标签。。。如果选中,我希望它们的不透明度为1

  <label for="edd-gateway-manual" 
    class="edd-gateway-option edd-gateway-option-selected" 
    id="edd-gateway-option-manual">
    <input type="radio" 
    name="payment-mode" 
    class="edd-gateway" 
    id="edd-gateway-manual" 
    value="manual">Test-Zahlung</label>

    <label for="edd-gateway-paypal" 
    class="edd-gateway-option" 
    id="edd-gateway-option-paypal">
    <input type="radio" 
    name="payment-mode" 
    class="edd-gateway" 
    id="edd-gateway-paypal" 
    value="paypal">PayPal</label>
这是我的密码:

你能帮我吗?那太好了


另外,我不能更改HTML代码,因为有更新…

要使用CSS完成此操作,最简单的方法是重新组织HTML:

<input type="radio" id="edd-gateway-manual" ... />
<label for="edd-gateway-manual" ... >Test-Zahlung</label>
由于您声明无法更改HTML代码,下一个最简单的解决方案是使用JavaScript切换标签上的类(注意:本例使用jQuery):

但是,如果您真的想找到一种方法来实现这一点,您可能可以在选中的元素上使用
:before
:after
伪类,而不是使用父标签(因为在CSS选择器中不能以父类为目标)。大概是这样的:

[type="radio"]:before {
  content: '';
  ...
}

[type="radio"]:checked:before {
  content: '';
  ...
}

要使用CSS实现这一点,最简单的方法是重新组织HTML:

<input type="radio" id="edd-gateway-manual" ... />
<label for="edd-gateway-manual" ... >Test-Zahlung</label>
由于您声明无法更改HTML代码,下一个最简单的解决方案是使用JavaScript切换标签上的类(注意:本例使用jQuery):

但是,如果您真的想找到一种方法来实现这一点,您可能可以在选中的元素上使用
:before
:after
伪类,而不是使用父标签(因为在CSS选择器中不能以父类为目标)。大概是这样的:

[type="radio"]:before {
  content: '';
  ...
}

[type="radio"]:checked:before {
  content: '';
  ...
}

CSS唯一解决方案:

这是由伪元素
:checked
完成的。如果您真的需要倒退,请参阅此元素

input[type=radio]:checked + label {
  /* Add your style here */
}

CSS唯一解决方案:

这是由伪元素
:checked
完成的。如果您真的需要倒退,请参阅此元素

input[type=radio]:checked + label {
  /* Add your style here */
}

如果HTML无法更改,则需要Javascript。如果HTML无法更改,则需要Javascript。注意-我不能更改HTML代码,因此这不是OP的选项。哇,P.S.并没有真正脱颖而出。谢谢@Paulie_D.Note-我不能更改HTML代码,所以这不是OP的选项。哇,P.S.并没有真正脱颖而出。谢谢@Paulie_D.Note-我不能更改HTML代码,所以这不是OP的选项。@Paulie_D谢谢你指出这一点。我忽略了那句话。将进行相应的编辑。感谢您的回复。我将该片段插入到JavaScript字段,但它仍然无法正常工作,正如您看到的那样:不过,可能我做错了什么…:/@LukasLang我很抱歉忽略了我提供的代码使用了一个名为jQuery的库这一事实,尽管它当然可以用纯/纯JavaScript编写。我更新了你的提琴,使之包含jQuery,它可以工作:注意-我不能更改HTML代码,所以这不是OP的选项。@Paulie_D谢谢你指出这一点。我忽略了那句话。将进行相应的编辑。感谢您的回复。我将该片段插入到JavaScript字段,但它仍然无法正常工作,正如您看到的那样:不过,可能我做错了什么…:/@LukasLang我很抱歉忽略了我提供的代码使用了一个名为jQuery的库这一事实,尽管它当然可以用纯/纯JavaScript编写。我更新了您的小提琴,使之包含jQuery,它可以工作: