Я собрал воедино этот подход для создания свойств и анимации с префиксом поставщика с использованием LESS. Сначала некоторые заводские функции:
.vendorprefix (@property, @value) {
-webkit-@{property}: @value;
-moz-@{property}: @value;
-ms-@{property}: @value;
-o-@{property}: @value;
@{property}: @value;
}
.keyframes(@name; @animation) {
@animation();
@-webkit-keyframes @name { .frames(-webkit-) }
@-moz-keyframes @name { .frames(-moz-) }
@-o-keyframes @name { .frames(-o-) }
@keyframes @name { .frames(~'') }
}
Функцию .vendorprefix можно использовать для свойств общего назначения, включая настройку анимации, например:
.element {
.vendorprefix(animation; slideout 1s);
}
Функция «.keyframes» имеет миксин «.frames» в качестве одного из своих аргументов, который она использует для генерации ключевых кадров с префиксом поставщика. Он также передает аргумент «@vendor» миксину «.frames», чтобы вы могли добавлять свойства, специфичные для поставщика. например:
.keyframes (slideout; {
.frames(@vendor) {
0% {
@{vendor}transform: translate(0px, 0px);
}
100% {
@{vendor}transform: translate(100px, 0px);
}
}
});
Это работает, но есть ли у кого-нибудь лучший метод?