需要注意的一件重要的事情是CSS转换属性本身是一个简写-正如在MDN Web Docs中提到的那样:
transition CSS属性是transition-property、transition-duration、transition-timing-function和transition-delay的简称。
这种简写的理想用法是将单个转换的各种组成属性结合起来。如果这被用来组合多个过渡,它将开始变得笨拙。
因此,当你在同一个元素上有超过2个不同组成属性的转场时,单独写它们比使用转场简写更容易。例如:
这是一个元素上多个转换的简写版本(选项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
当然,最终这一切都取决于您对输入和维护源代码的偏好。但我个人更喜欢第二种选择。
TIP:
使用它的另一个好处是,如果一个Constituent属性对于所有转换都是相同的,则不需要多次提到它。例如,在上面的例子中,如果所有的过渡持续时间都是相同的(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