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

如何仅用纯CSS实现复选框选中时修改对应span文字颜色

方案1:不修改现有HTML结构(推荐,现代浏览器兼容)

直接使用CSS :has() 选择器匹配包含已勾选复选框的待办项容器,再选中文字节点设置样式即可,在你现有CSS基础上添加以下代码:

.todo-item:has(input[type=checkbox]:checked) span {
  color: green;
}

另外你现有CSS中存在一个小问题可顺便修正:.todo-item 里的 justify-items: space-between 是Grid布局属性,Flex布局下要改为 justify-content: space-between 才能实现左右内容两端对齐的效果。

方案2:兼容老旧浏览器(需调整HTML结构)

如果需要兼容不支持:has()的旧版本浏览器,可以把隐藏的复选框移到文字节点前面,利用CSS后续兄弟选择器匹配选中状态:
修改后的HTML代码:

<div class="todo-item">
  <input type="checkbox" id="todo1">
  <label for="todo1">如果复选框被选中,这段文字的颜色需要变为绿色。</label>
  <div>
    <div>
      <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="white">
        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7" />
      </svg>
    </div>
  </div>
</div>

对应新增的CSS代码:

.todo-item input[type=checkbox] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.todo-item input[type=checkbox]:checked + label {
  color: green;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:54:02