CSS如何给按钮添加按下缩小的动画_利用-active配合transform
按钮点击无动画响应需检查 pointer-events、disabled、父元素遮挡及 :active 权重缩放卡顿因缺少 transition应设于常态规则中兼容 IE9/10 需 JS 模拟布局抖动可调 transform-origin、用 padding 替代 height。按钮按下时没反应检查是否被 pointer-events 或 disabled 阻断很多情况下写好了 :active 样式但点击按钮毫无动画——大概率是按钮本身不可交互。常见干扰因素有pointer-events: none、disabled 属性、父元素遮挡如透明 overlay、或 CSS 中 :active 选择器权重不足被覆盖。用浏览器开发者工具检查按钮的 computed styles确认 pointer-events 是 auto且没有 disabled:active 必须写在 :hover 之后才可能生效否则会被覆盖移动端需注意部分安卓 WebView 对 :active 响应延迟或不触发可加 touchstart 事件临时补救transform: scale() 缩小动画为何卡顿或跳变直接写 transform: scale(0.95) 在 :active 里常出现“闪一下就缩”或“松开后回弹生硬”根本原因是缺少过渡控制。CSS 动画依赖 transition 显式声明而 :active 本身不带缓动逻辑。必须给按钮设置 transition: transform 0.1s ease推荐 ease 或 ease-out避免 linear 显得机械不要只对 :active 加 transition它只作用于“进入 active 状态”松开时无过渡要写在常态规则里慎用 scale(0.8) 之类过小值——文字会糊按钮可能被压出父容器边界建议控制在 0.92–0.97 区间需要兼容老浏览器别只靠 :activeIE10 及更早版本不支持 :active 在非 a 元素上生效比如 button 或 div rolebutton。纯 CSS 方案在此类环境会彻底失效。 VWO 一个A/B测试工具