You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tailwind CSS:子复选框选中时修改父级Label样式

解决复选框选中时修改父容器Label样式的问题

Tailwind的peer和peer-checked仅支持同级元素之间的样式联动,你把input放在label内部(父子关系),所以这套规则无法生效。下面给两种可行的解决办法:

办法1:调整DOM结构,让input和label同级

把input移到label外面,保持for属性关联,这样就能正常使用peer系列类:

<div class="flex items-center w-fit">
  <input type="checkbox" id="choose-me" class="peer mr-3" />
  <label 
    for="choose-me"
    class="flex items-center justify-evenly p-3 border-2 border-grey-4 text-grey-8
           peer-checked:bg-light-indigo peer-checked:text-medium-indigo peer-checked:border-medium-indigo">
    Check me
  </label>
</div>

办法2:使用Tailwind的:has()伪类(无需调整结构)

如果不想改动DOM结构,可以用Tailwind v3.2+支持的:has()父选择器语法,直接在label上针对内部选中的input应用样式:

<label
  for="choose-me"
  class='flex w-fit items-center justify-evenly p-3 border-2 border-grey-4 text-grey-8 
         has-[input:checked]:bg-light-indigo has-[input:checked]:text-medium-indigo has-[input:checked]:border-medium-indigo'>
  <input type="checkbox" id="choose-me" class="mr-3" />
  Check me
</label>

内容的提问来源于stack exchange,提问作者Anurag Deore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 11:50:22