Less 有没有一种方法可以取出表达式,以便在各种mixin(如函数)中重用?

Less 有没有一种方法可以取出表达式,以便在各种mixin(如函数)中重用?,less,Less,我有两个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; } 如何取出表达式以便在各种混合中重用?您可以使混合模拟函数: .mixin1(@a, @

我有两个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;
}

如何取出表达式以便在各种混合中重用?

您可以使混合模拟函数:

.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
变量,因此在实际项目代码中,可以使用一些长的“唯一”名称作为“返回变量”。例如
@-result
或其他…)