transition 基础
transition 让属性值的变化平滑进行而不是瞬间跳变。它写在「稳定状态」的选择器上,当状态改变(如 hover)时自动生成补间动画。
四个子属性:transition: 属性 时长 缓动函数 延迟;
- property:要过渡的属性名,如 color、transform。写 all 表示全部(方便但可能有意外开销)。
- duration:时长,如
.3s。交互反馈常用 0.2~0.4 秒。 - timing-function:缓动,默认 ease。
- delay:延迟后才开始。
两个关键认知:
- transition 需要触发状态切换(hover、class 变化、属性被 JS 修改)才会播放,它不能自动循环——循环要找 animation。
- 并非所有属性都能过渡:颜色、尺寸、transform、opacity 可以;display 不能(没有中间值),改用 visibility 或 opacity 方案。
本节要点transition 写在起始状态上,四段式「属性 时长 缓动 延迟」;需要状态切换触发;display 无法过渡,opacity/visibility 可以。
CSS
<style> .box { width: 100px; height: 40px; background: #39c5cf; /* 写在稳定态:进入和离开都有过渡 */ transition: background .3s, width .3s; } .box:hover { background: #7c4dff; width: 160px; } .fade { margin-top: 10px; width: 100px; height: 40px; background: #ffb74d; /* 延迟 0.2s 后开始过渡 */ transition: opacity .4s ease .2s; } .fade:hover { opacity: .3; } </style> <div class="box">悬停变色变宽</div> <div class="fade">悬停淡出(延迟0.2s)</div>
📚 推荐阅读
来自万象云档的免费在线书籍,点击封面直接阅读




