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

如何为特定ID按钮修改CSS :after伪元素hover样式?动画失效排查

问题原因与解决方案

问题根源

你添加的代码重复定义了带ID按钮的:after伪元素全部样式,包括transform: skewY(9.3deg) scaleY(0)。根据CSS优先级规则,类+ID+伪元素的权重(111)远高于类+伪类+伪元素(21),导致原.button-57:hover:after中的transform: scaleY(2)无法覆盖静态样式的scaleY(0),伪元素始终处于隐藏状态,动画自然无法触发。

正确实现方式

不需要重复伪元素的位置、变换、过渡等基础样式,这些可直接继承自.button-57:after,只需针对不同ID的按钮在hover状态下修改:after的背景色即可:

修改后的CSS代码

/* 保留原.button-57的所有CSS样式不变 */

/* 新增针对不同按钮的hover背景色设置 */
.button-57#btnSaveChanges:hover:after {
  background-color: #2140D9;
}

.button-57#btnLogout:hover:after {
  background-color: #db2020;
}

说明

  • 原.button-57:hover:after中的变换逻辑(scaleY(2))会正常生效,我们仅追加了背景色属性,没有覆盖原有动画规则。
  • 这种写法既满足“悬停时切换背景色”的需求,又保留了原按钮的动画效果,同时彻底避免了优先级冲突问题。

内容的提问来源于stack exchange,提问作者Mr. Blue

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:17:21