【发布时间】:2021-10-27 23:55:08
【问题描述】:
目前我尝试以更少的成本构建 mixins,但它似乎比预期的要复杂。例如,我尝试构建一个 if 条件,我的标题如下所示:
.ifClauses(
@checkParam,
@conditions:{
isnumber(@checkParam),
ispercentage(@checkParam),
ispixel(@checkParam)
},
@thens:{
.first(){height:@checkParam * 1px;},
.second(){height:@checkParam;},
.third(){height:@checkParam;}
}
)
我知道数组的定义如下:
@array: first,second,third;
.
也许我可以将其用作对象,也就是说,当参数用逗号分隔时,如何将数组写入 mixins 参数?
【问题讨论】:
-
我不确定我是否完全理解你,但你可以使用
extract(@array, 1)从逗号分隔的字符串中提取第一个值。 -
其余的取决于所有这些
1st, 2nd, 3rd etc应该是什么意思。换句话说,提供有关您的实际用例的更多详细信息可能是明智的,否则陷入 XY 问题的机会太高了。 -> -
-> (由于 Less 不是一种脚本语言,当尝试使用来自脚本语言(例如 JavaScript)的非 Less-friendly 设计模式时,这是很常见的陷阱,因此必须模拟类似脚本行为,因此将各种 kludges 和解决方法堆叠在一起以解决问题,否则(并非总是但经常)更容易通过本机 Less(或通常情况下的“任何声明性”)设计模式来解决。)
-
我当然知道 less 不是脚本语言。我只是希望有一个选项可以在参数中使用数组构建 mixins,或者如果这不起作用,则有任何函数可以让使用 less 的条件变得更容易。在您的帮助 cmets 之后,我认为没有其他更优雅的解决方案。谢谢 :)
标签: css less less-mixins