我有两个 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中重用?
我有两个 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中重用?
您可以制作 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
……)