CSS 过渡(Transition)是一种在 CSS 属性值之间切换时为其添加时间持续性的方法。这可以用于在鼠标悬停、获得焦点、或者通过 JavaScript 触发的任何其他方式上创建平滑的动画效果。过渡效果通常应用于颜色、大小、位置和其他可动画的属性。
基本语法
CSS 过渡主要涉及以下属性:
transition-property
: 指定应用过渡效果的 CSS 属性。可以是任何可动画的属性,如opacity
、background-color
等。transition-duration
: 过渡效果从开始到完成所需的时间,通常以秒(s)或毫秒(ms)为单位。transition-timing-function
: 控制动画速度的曲线。常见的值有linear
、ease
、ease-in
、ease-out
和ease-in-out
。transition-delay
: 延迟过渡效果开始的时间。
这些属性可以通过 transition
简写属性组合在一起。例如:
div {
transition: background-color 0.5s ease-in 0s;
}
在这个例子中,div
元素的背景色在 0.5 秒内平滑过渡,使用 ease-in
加速方式,无延迟开始。
实例
.box {
width: 100px;
height: 100px;
background-color: blue;
transition: width 2s, background-color 2s, transform 2s;
}
.box:hover {
width: 200px;
background-color: red;
transform: rotate(45deg);
}
在这个例子中,.box
元素在鼠标悬停时,其宽度、背景色和旋转会在 2 秒内平滑过渡。
注意事项
- 性能考虑: 过多或复杂的过渡效果可能会影响页面性能。应谨慎使用。
- 可动画属性: 并非所有 CSS 属性都可以添加过渡效果。一般来说,只有数值型的属性(如尺寸、颜色、位置)才可以过渡。
- 初始状态: 为了使过渡效果生效,元素必须有一个初始状态和一个改变后的状态。
CSS 过渡是创建动态交互体验的简便方法,但要确保过渡效果与用户界面的整体设计和功能协调一致。