有关less 处理@arguments的一些高级技巧


//http://stackoverflow.com/questions/14350749/less-arguments-with-linear-gradients-commas
.mixin(...) {
  filter: gradient( ~`@{arguments}.join(",")` );
}

.test {
 .mixin("x1","x2","x3")
}

输出



test {
 filter: gradient(x1,2,3);
}

就是捕捉用户所有传入的参数,然后拼接

这里有一篇讲述早期如此与@arguments作斗争的http://www.toekneestuck.com/blog/2012/05/15/less-css-arguments-variable/ 不过,1.32出来后就作废了。看现在的做法



.flex(@flex) {
  -webkit-box-flex: @flex;
  -moz-box-flex: @flex;
  -o-box-flex: @flex;
  box-flex: @flex;
  -webkit-flex: @flex;
  -moz-flex: @flex;
  -ms-flex: @flex;
  -o-flex: @flex;
  flex: @flex;
}
ul {
     @value:1 1 auto;
    .flex(@value);
    list-style: none;
    margin: 0;
    padding: 0;
    background: hsl(200,100%,90%);
    //min-height: 0;
    overflow: auto;
}

看到没有,现在我们可以把传参放到一个变量中,我这里叫@value,随你怎么定义,然后再传到函数里。支持传变量,对于.transition,.transform这样需要传复杂的字符串的CSS数来说,就简单多了。

最后这里还一篇,一些更有用的技巧http://www.sitepoint.com/a-comprehensive-introduction-to-less-mixins/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值