lessphp - 使用函数返回变量

时间:2013-08-20 13:10:14

标签: less lessphp

当我使用默认的less.js时,我可以在函数中返回一个变量,如:

.function(@x,@y) {

  .innerFunction() when (@x = @y) {
    @output: @x
  }

  .innerFunction() when not (@x = @y) {
    @output: @x/10;
  }

  .innerFunction() when (...) {
    @output: @x + @y;
  }

  property: @output;

}

这对于创建更复杂的更少函数非常实用,但它不适用于lessphp ...有没有办法在lessphp中返回变量?

1 个答案:

答案 0 :(得分:0)

Lessphp不允许变量泄漏到定义它们的规则范围之外。

lessphp documentation 说明了这一点:

  

变量只能在当前范围或任何范围内使用   封闭的范围。

你可以像这样重新格式化mixin以在less.js和lessphp中工作的方式可能是这样的:

.function(@x,@y) {
  .innerFunction() when (@x = @y) {
    .output(@x);
  }
  .innerFunction() when not (@x = @y) {
    .output(@x/10);
  }
  .output(@output) {
    property: @output;
  };
  .innerFunction();
}

例如在LESS中调用mixin:

.test-class {
  .function(20,11);
}

将为您提供以下CSS:

.test-class {
  property: 2;
}

当然,如何构建更复杂的mixins有很多不同的方法,但解决方案/方法将取决于您在特定情况下想要实现的目标。