Less 使用Mixin定义自定义变量

Less 使用Mixin定义自定义变量,less,Less,我试图修改颜色的亮度,将其距离的百分比修改为100%,这样我就不会达到100%或超过100%,从而产生白色 老实说,可能有更聪明的方法来做这件事,但我的解决方案是尝试以下方法: .zeno-lighten(@new-var-name;@color;@percentage:.5){ @new-lightness: lightness(@color) + (100% - lightness(@color)) * @percentage; @{new-var-name}: hsl(hue(@c

我试图修改颜色的亮度,将其距离的百分比修改为100%,这样我就不会达到100%或超过100%,从而产生白色

老实说,可能有更聪明的方法来做这件事,但我的解决方案是尝试以下方法:

.zeno-lighten(@new-var-name;@color;@percentage:.5){
  @new-lightness: lightness(@color) + (100% - lightness(@color)) * @percentage;
  @{new-var-name}: hsl(hue(@color), saturation(@color), @new-lightness);
}

.cool-div{
  .zeno-lighten(@new-bg;indianred;.5);
}
如果我创建一个静态varname,而不是基于mixin中的参数创建,那么它就可以工作


谢谢

正如你所说,我不确定这是否是最好的方法。但是如果@new bg变量具有正确的属性名,那么mixin应该可以正常工作。你能用代码笔制作一个演示你的问题吗?你可以使用着色功能,例如。tint@color,50%,这是mix@color,白色,@数量,基本上满足您的需求。至于Q本身,不,您不能使用属性插值语法来定义新变量,因此它不会以这种方式工作。因此,您必须为这个返回变量使用一些预定义的名称,如果您需要在同一范围内多次调用这个函数,请在&{…}中隔离每个函数。例如,请参阅。非常感谢!那个例子非常有趣,可能是重复的