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

SCSS实现点击按钮后修改背景色效果不生效问题求助

你当前代码存在两处问题:

  • :active伪类内仅声明了--background-active变量,未将控制实际背景色的--b变量绑定到该值,是点击时背景不生效的核心原因
  • 前缀属性拼写错误:-webkit-appearence需修正为-webkit-appearance

修改后的完整SCSS代码如下:

.grid-list {
  --color: #f6f8ff;
  --background: #2b3044;
  --background-hover: green;
  --background-active: blue;
  padding: 6px 12px 6px 8px;
  margin: 0;
  display: flex;
  outline: none;
  position: relative;
  border: none;
  border-radius: 9px;
  background: var(--b, var(--background));
  cursor: pointer;
  -webkit-appearance: none;
  -webkit-tap-highlight-color: transparent;
  transform: scale(var(--scale, 1)) translateZ(0);
}
.grid-list:active {
  --scale: 0.95;
  --b: var(--background-active);
}
.grid-list:hover {
  --b: var(--background-hover);
}

如果你需要的是点击后持续保持蓝色,而非仅鼠标按住的瞬间生效,仅靠CSS伪类无法实现,需要配合JS给点击后的元素添加自定义类,再补充对应样式即可,示例:

/* 自定义激活态样式 */
.grid-list.is-active {
  --b: var(--background-active);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:15:05