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

如何仅使用CSS实现点击元素后该元素不再受hover样式影响

纯CSS实现点击元素后保持红色背景并禁用hover效果的方案

核心实现思路:借助隐藏的input type="checkbox"和label标签的原生绑定关系,通过:checked伪类匹配点击后的持久状态,全程无需引入任何JS代码。


完整代码实现

HTML代码(移除原有的JS引入,调整结构)

<input type="checkbox" id="btn1" class="btn-check">
<label for="btn1" class="button">123</label>

<input type="checkbox" id="btn2" class="btn-check">
<label for="btn2" class="button">123</label>

CSS代码

/* 隐藏checkbox,不占用页面布局 */
.btn-check {
  display: none;
}

.button {
  width: 100px;
  height: 100px;
  border: 1px solid #222;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* 未点击时的hover效果 */
.button:hover {
  background-color: yellow;
}

/* 点击后(checkbox选中)的状态 */
.btn-check:checked + .button {
  background-color: red;
  pointer-events: none; /* 彻底禁用鼠标事件,hover不会再触发 */
}

扩展说明

  • 如果需要支持再次点击恢复原状态,去掉pointer-events: none即可,checkbox原生支持切换选中/未选中状态,去掉后点击红色元素可切回初始状态,hover效果也会同步恢复
  • 如果要求点击后永久保持红色不可修改,保留pointer-events: none即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 01:42:02