应将重复的CSS动画逻辑抽成语义化可复用class,如.animate-fade-in、.animate-slide-up等,统一时长0.3s和fill-mode:both;支持data属性动态控制参数;允许多类组合;推荐工具辅助生成;仅对高频低差异动效封装。
把重复的 CSS 动画逻辑抽成可复用的 class,能大幅减少代码量、提升维护性。关键不是写更多动画,而是用更少、更清晰的类名表达常见动效意图。
不要为每个元素单独写 @keyframes,而是定义语义化、用途明确的动画类:
所有动画统一使用 duration: 0.3s、fill-mode: both,避免每次重复声明。
固定时长/延迟不够用?用 HTML 的 data- 属性动态覆盖:
[data-duration] { animation-duration: attr(data-duration); }
data-easing、data-iteration 等,无需改 CSS 文件一个元素常需多个动效(比如先淡入再上滑),直接空格拼接即可:
推荐用 PostCSS 插件(如 postcss-animation)或 VS Code 扩展,输入 .anim-fade 回车自动补全完整 class 和对应 keyframes 声明,省去手写 boilerplate。
不是所有动画都值得封装。以下情况建议保留内联或组件级样式:
通用 class 的价值在于「高频、低差异、意图明确」——抓住这点,CSS 动画就能既简洁又可控。