需要注意的一点是,CSS transition
属性本身就是一个简写属性 - 如 MDN Web Docs 中所述:
transition
CSS 属性是一个将 transition-property
、transition-duration
、transition-timing-function
和 transition-delay
属性合并在一起的简写属性。
这个简写属性的理想用法是将单个过渡的各种组成部分结合在一起。如果使用它来组合多个过渡,代码就会变得冗长。
因此,当您在同一元素上有两个及以上不同组成部分的过渡时,最好将它们单独编写,而不是使用 transition
简写属性。例如:
这是一个元素上多个过渡的简写版本(选项 1):
transition: transform 0.5s ease-in-out, box-shadow 0.2s ease-out, filter 0.1s ease-out, color 0.25s ease-in 0.2s;
你可以看到,这样做会变得笨重一些,并且有点难以想象。
可以像这样应用相同的CSS(选项2):
transition-property: transform, box-shadow, filter, color;
transition-duration: 0.5s, 0.2s, 0.2s, 0.25s;
transition-timing-function: ease-in-out, ease-out, ease-out, ease-in;
transition-delay: 0s, 0s, 0s, 0.2s
当然,最终一切都取决于您的打字和维护源代码的偏好。但我个人更喜欢第二个选项。
提示:
使用这种方法的额外好处是,如果所有转换的组成属性相同,则无需多次提及该属性。例如,在上面的示例中,如果所有转换的
transition-duration
都相同(
0.5s
),则可以这样编写:
transition-property: transform, box-shadow, filter, color;
transition-duration: 0.5s;
transition-timing-function: ease-in-out, ease-out, ease-out, ease-in;
transition-delay: 0s, 0s, 0s, 0.2s
opacity
后面的双.5s
值是有意义的吗? - BoltClock