有關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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM