在css中如何用transition-duration控制过渡时间

transition-duration用于设置CSS过渡效果的持续时间,取值为秒(s)或毫秒(ms),常与transition-property和timing-function配合使用,可简写为transition。例如:button{transition:background-color 0.3s ease;}实现背景色0.3秒平滑变化。支持为多个属性设置不同持续时间,如width 0.5s、height 0.8s。需配合:hover等触发条件生效,默认值为0s,仅适用于可渐变属性如颜色、尺寸等,非连续属性如display不支持过渡。合理使用可提升界面交互流畅性。

在CSS中,transition-duration 属性用于定义元素从一种样式过渡到另一种样式所花费的时间。换句话说,它控制动画的持续时间。如果希望某个属性变化(比如颜色、宽度、位置等)不是立即完成,而是平滑地进行,就可以使用这个属性。

基本语法

transition-duration 的值可以是秒(s)或毫秒(ms)。常见写法如下:

transition-duration: 0.5s; transition-duration: 200ms; transition-duration: 1s;

与 transition 搭配使用

通常,transition-duration 会和其他 transition 相关属性一起使用,比如 transition-property 和 transition-timing-function。也可以直接用简写形式 transition。

例如,让一个按钮的背景色在 0.3 秒内平滑变化:

button {
  background-color: blue;
  transition-property: background-color;
  transition-duration: 0.3s;
  transition-timing-function: ease;
}

button:hover { background-color: red; }

更简洁的写法是使用 transition 简写:

button {
  background-color: blue;
  transition: background-color 0.3s ease;
}

button:hover { background-color: red; }

为多个属性设置不同持续时间

如果同时过渡多个属性,可以给每个属性指定不同的持续时间。

例如,宽度变化用 0.5 秒,高度用 0.8 秒:

.box {
  width: 100px;
  height: 100px;
  transition-property: width, height;
  transition-duration: 0.5s, 0.8s;
}

.box:hover { width: 200px; height: 150px; }

注意事项

确保设置了触发变化的条件,比如 :hover、JavaScript 类切换等,否则看不到过渡效果。

transition-duration 默认值是 0s,意味着没有延迟,变化立即完成。

只有能“渐变”的属性才支持过渡,比如颜色、尺寸、透明度等。像 display 这类非连续属性无法过渡。

基本上就这些。合理使用 transition-duration 能让界面交互更自然流畅。