过渡是指在属性值发生变化时,元素可以从一种样式逐步转变为另一种样式。比如,将一个按钮从原本的白色背景变为红色背景,不再是瞬间完成,而是在一段时间内慢慢变化。过渡需要指定过渡属性、过渡时长、过渡速度曲线等。
button{ transition: background-color 0.5s ease; } button:hover{ background-color: red; }
上述代码中,当鼠标悬停在按钮上时,按钮会从白色背景慢慢变为红色背景,过渡时间为0.5秒,速度曲线为缓和曲线。
动画是指元素可以通过定义关键帧来实现复杂的动画效果。比如,一个盒子从左往右移动,途中先加速后减速,最后停在指定位置,这种复杂的动画可以通过动画实现。动画需要定义动画名称、动画时长、动画速度曲线、动画延迟时间、动画次数等。
.box{ animation: move 1s ease-out; } @keyframes move{ 0%{ left:0; } 50%{ left:50%; } 100%{ left:100%; } }
上述代码中,一个盒子会从左往右移动,途中先加速后减速,动画时长为1秒。关键帧中指定了3个状态,分别为开始位置、中间位置和结束位置。注意,动画名称需要在关键帧中定义。
总的来说,过渡是用于简单的状态变化,动画是用于复杂的动画效果。过渡主要通过过渡属性实现,动画则需要定义关键帧。两者都需要指定时长和速度曲线。