1

我有两个 mixin,它们使用相同的表达式来计算值 @c,但该值适用于不同的属性。

.mixin1(@a, @b){
   @c: /* some complex expression with @a and @b */;
   width: @c;
}

.mixin2(@a, @b){
   @c: /* same expression like in mixin1 */;
   height: @c;
}

如何取出表达式以在各种mixin中重用?

4

1 回答 1

2

您可以制作 mixins 来模拟函数:

.mixin1(@a, @b) {
    .my-complex-expression(@a, @b);
    width: @result;
}

.mixin2(@a, @b) {
    .my-complex-expression(@a, @b);
    height: @result;
}

.my-complex-expression(@a, @b) {
    @result: ((@a + @b) / 2);
}

(请注意,它可能是@result每个作用域的唯一变量,因此在实际项目代码中,人们会使用一些长的“唯一”名称作为“返回变量”。例如@<function-name>-result……)

于 2013-09-17T22:37:59.223 回答