在LESS中生成供应商前缀 [英] Generating vendor prefixes in LESS

查看:547
本文介绍了在LESS中生成供应商前缀的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经拼凑了这种方法来生成供应商前缀的属性和使用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);
}
}
});

这样做有效,但是有没有更好的方法?



尝试使用LESS中的供应商前缀,但是更好的工具已经存在。 css-postprocessor like Myth ,它具有自动前缀功能。


I've pieced together this approach for generating vendor-prefixed properties and animations using LESS. First some factory functions:

.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(~'') }
}

The '.vendorprefix' function can be used for general purpose properties including setting animations, e.g:

.element {
    .vendorprefix(animation; slideout 1s);
}

The '.keyframes' function has a '.frames' mixin as one of its arguments which it uses to generate vendor prefixed keyframes. It also passes a '@vendor' argument to the '.frames' mixin so you can add vendor specific properties. e.g:

.keyframes (slideout; {
    .frames(@vendor) {
        0% {
            @{vendor}transform: translate(0px, 0px);
        }
        100% {
            @{vendor}transform: translate(100px, 0px);
        }
    }
});

This does work, but does anyone have a better method?

解决方案

You can implement vendor-prefixing in LESS, but far better tools already exist.

Try to use css-postprocessor like Myth, it has auto-prefixing feature.

这篇关于在LESS中生成供应商前缀的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆