应将重复的 hover 效果抽离为公共工具类(如 .u-hover-effect),统一设置 transition 与基础交互行为,再通过组合语义化修饰类(如 .btn-primary、.card-lift)实现差异化表现,配合 BEM 命名与 Sass mixin 提升可维护性。

把重复的 hover 效果抽成一个公共 class,比如 .hover-effect,然后在所有需要的地方直接加这个类就行,不用每个元素都写一遍相同的 :hover 规则。
统一定义 hover 行为
在 CSS 中集中写一次 hover 样式,覆盖常见交互需求:
- 用
transition统一设置动效时长和缓动,比如transition: all 0.2s ease; - 基础 hover 状态可包括颜色变化、背景微调、轻微缩放或阴影增强
- 避免在多个选择器里重复写
color: #007bff; transition: color 0.2s;这类代码
按需组合,不强求“一刀切”
公共 class 负责共性,个性部分仍可单独覆盖:
- 给按钮加
.hover-effect,再额外加.btn-primary控制默认色和 hover 色差 - 链接用
.hover-effect.text-underline实现下划线动画,而卡片用.hover-effect.card-lift做 z-index 和阴影变化 - 关键点:公共 class 只管“有 hover”,具体表现由组合的其他 class 决定
用 BEM 或语义化命名降低维护成本
避免起名随意导致后期混乱:
立即学习“前端免费学习笔记(深入)”;
- 推荐命名如
.u-hover-scale(u = utility)、.js-hover-fade(js = 可被 JS 触发,也方便后续加交互) - 不建议叫
.hover1、.magic-hover—— 别人看不懂,你自己三个月后也得猜 - 配合 CSS 预处理器(如 Sass),可把 hover 逻辑封装成
@mixin hover-effect,进一步提升复用粒度
不复杂但容易忽略:hover 不是视觉“装饰”,而是用户意图的反馈信号。统一管理,既省代码,也保体验一致。










