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

如何仅用CSS实现点击div时将其背景颜色改为红色

仅用CSS实现点击Div后背景变红的方案

这里有两种纯CSS的实现方式,你可以根据实际需求选择:

方法1:利用:focus伪类实现单次点击触发变色

这种方法通过给div添加tabindex属性让它能获得焦点,点击时触发:focus状态来改变背景色。

代码示例

<div tabindex="0" class="clickable-box">点击我变红</div>
.clickable-box {
  padding: 20px;
  border: 1px solid #ddd;
  cursor: pointer;
}

/* 点击后触发焦点状态,设置红色背景 */
.clickable-box:focus {
  background-color: red;
  outline: none; /* 可选:移除浏览器默认的焦点边框 */
}

注意事项

  • 点击页面其他区域时,div会失去焦点,背景色会恢复原状;
  • tabindex="0"表示该元素可通过Tab键导航,若不想让它参与Tab导航,可改用tabindex="-1"。

方法2:利用:checked伪类实现切换式变色

如果需要点击后保持红色(再次点击恢复),可以结合隐藏的checkbox和label来实现,通过checkbox的选中状态控制div样式。

代码示例

<!-- 隐藏的复选框 -->
<input type="checkbox" id="toggle-bg" class="hidden-check">
<!-- label与复选框关联,点击label等同于点击复选框 -->
<label for="toggle-bg" class="click-trigger">
  <div class="target-box">点击切换红色背景</div>
</label>
/* 隐藏复选框 */
.hidden-check {
  display: none;
}

.click-trigger {
  cursor: pointer;
}

.target-box {
  padding: 20px;
  border: 1px solid #ddd;
  transition: background-color 0.2s; /* 可选:添加过渡动画 */
}

/* 复选框选中时,修改对应div的背景色 */
.hidden-check:checked + .click-trigger .target-box {
  background-color: red;
}

注意事项

  • 点击div会切换checkbox的选中状态,从而切换背景色;
  • 这种方式的状态会保留,直到再次点击div才会恢复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 06:12:08