需要注意的重要一点是 CSStransition
属性本身是一种速记 -正如MDN Web Docs中所述:
transition
CSS 属性是transition-property
、transition-duration
、transition-timing-function
和的简写属性transition-delay
。
这种速记的理想用途是结合单个转换的各种成分属性。如果这用于组合多个转换,它将开始变得笨拙。
因此,当您在同一元素上有超过 2 个具有不同组成属性的转换时,单独编写它们而不是使用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