样式表语言较少:防止在编译的CSS中省略括号

时间:2013-04-30 00:26:43

标签: css less transform

我正在使用{less}并遇到使用括号的问题。我为CSS3转换属性编写了一个mixin。我无法弄清楚如何在编译的CSS中使用括号。 Less将括号视为操作并省略它们。

原创CSS:

   .plus {
        -webkit-transform: rotate(45deg);
        -moz-transform: rotate(45deg);
        -o-transform: rotate(45deg); }

Less mixin我写道:

    .transform (@action, @value){
        -webkit-transform: @action(@value);
        -moz-transform: @action(@value);
        -o-transform: @action(@value); }

结果编译的CSS:

   .plus {
      -webkit-transform: rotate 45deg;
      -moz-transform: rotate 45deg;
     -o-transform: rotate 45deg; }

2 个答案:

答案 0 :(得分:5)

您可以将其保留为一个值,并在调用时传入您需要的任何内容。

.transform(@value) {
    -webkit-transform: @arguments;
    -moz-transform: @arguments;
    transform: @arguments;
}

.plus {
    .transform(rotate(45deg));
    .transform(scale(1.5, 2.0));
}

编译到

.plus {
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
    -webkit-transform: scale(1.5, 2);
    -moz-transform: scale(1.5, 2);
    transform: scale(1.5, 2);
}

答案 1 :(得分:4)

将你的mixin改成这样的东西(关键是将它构建成一个字符串然后使用转义值):

.transform (@action, @value){
  @escapedValue: ~"@{action}(@{value})";
  -webkit-transform: @escapedValue;
     -moz-transform: @escapedValue;
       -o-transform: @escapedValue; 
}