LESS позволяет параметрические микшины, такие как:
.transition(@property, @duration){
transition: @property @duration;
-moz-transition: @property @duration; /* Firefox 4 */
-webkit-transition: @property @duration; /* Safari and Chrome */
-o-transition: @property @duration; /* Opera */
}
Однако это не всегда работает со свойствами, такими как переходы. Если вы пытаетесь иметь несколько переходов и пытаетесь вызвать mixin несколько раз, последний mixin переопределяет все ранее определенные переходы. Это потому, что правильный синтаксис CSS3 для определения нескольких переходов:
... {
transition: @property1 @duration1, @property2 @duration2, ...;
}
Единственный способ, с помощью которого я могу определить несколько переходов в качестве миксинов, - это перегрузить mixin:
.transition(@property, @duration){...}
.transition(@property, @duration, @prop2, @dur2){...}
.transition(@property, @duration, @prop2, @dur2, @prop3, @dur3){...}
Существует ли более надежный и лаконичный способ определения переходного mixin для принятия переменного количества аргументов и построения соответствующего перехода CSS?
Контекст: Иногда мне хотелось бы перейти на несколько свойств; например, :hover
может вызывать переходы по цвету фона, коробке-тени, текстовому цвету и т.д.