CSS 基础教程
CSS 盒子模型
CSS 高级教程
CSS3 特点
CSS3 示例
CSS3 参考

CSS3 过渡

CSS3 过渡功能允许 CSS 属性值的更改在指定的持续时间内平滑发生。

了解 CSS3 过渡

通常,当 CSS 属性的值发生变化时,渲染结果会立即更新。 一个常见的例子是在鼠标悬停时更改按钮的背景颜色。 在正常情况下,当您将光标放在按钮上时,按钮的背景颜色会立即从旧属性值更改为新属性值。

CSS3 引入了一个新的过渡特性,允许你随着时间的推移平滑地从旧值到新值的动画。 以下示例将向您展示如何在鼠标悬停时为 HTML 按钮的 background-color 设置动画。

button {
    background: #fd7c2a;
    /* For Safari 3.0+ */
    -webkit-transition-property: background;
    -webkit-transition-duration: 2s;
    /* 标准语法 */
    transition-property: background;
    transition-duration: 2s;
}
button:hover {
    background: #3cc16e;
}

您必须至少指定两个属性 transition-propertytransition-duration(大于 0)才能进行过渡。 但是,所有其他 过渡属性 都是可选的,因为它们的默认值不会阻止过渡的发生。

要使过渡发生,您必须至少指定两件事 — 您要使用 transition-property CSS 属性应用过渡效果的 CSS 属性的名称,以及使用 transition-duration CSS 属性的过渡效果的持续时间(大于 0)。 但是,所有其他 过渡属性 都是可选的,因为它们的默认值不会阻止过渡的发生。

注意: 并非所有 CSS 属性都是可动画的。 通常,任何接受数字、长度、百分比或颜色值的 CSS 属性都是可动画的。


执行多个过渡

每个过渡属性可以采用多个值,以逗号分隔,这提供了一种使用不同设置一次定义多个过渡的简单方法。

button {
    background: #fd7c2a;
    border: 3px solid #dc5801;
    /* For Safari 3.0+ */
    -webkit-transition-property: background, border;
    -webkit-transition-duration: 1s, 2s;
    /* 标准语法 */
    transition-property: background, border;
    transition-duration: 1s, 2s;
}
button:hover {
    background: #3cc16e;
    border-color: #288049;
}

过渡速记属性

应用过渡时需要考虑许多属性。 但是,也可以在一个属性中指定所有过渡属性以缩短代码。

transition 属性是一个简写属性,用于按列出的顺序一次设置所有单独的过渡属性(即 transition-property, transition-duration, transition-timing-function, 和 transition-delay)。

使用此属性时,请务必遵守此值的顺序。

button {
    background: #fd7c2a;
    -webkit-transition: background 2s ease-in 0s; /* For Safari 3.0+ */
    transition: background 2s ease-in 0s; /* 标准语法 */
}
button:hover {
    background: #3cc16e;
}

注意:如果缺少或未指定任何值,则将使用该属性的默认值。 这意味着,如果 transition-duration 属性的值缺失,则不会发生过渡,因为它的默认值为 0。


CSS3 过渡属性

下表提供了所有过渡属性的简要概述:

属性 说明
transition 用于在单个声明中设置所有四个单独的转换属性的简写属性。
transition-delay 指定何时开始转换。
transition-duration 指定过渡动画完成所需的秒数或毫秒数。
transition-property 指定应应用过渡效果的 CSS 属性的名称。
transition-timing-function 指定如何计算受过渡影响的 CSS 属性的中间值。
Advertisements