Less 如何将逗号分隔的列表作为单个参数传递给mixin

Less 如何将逗号分隔的列表作为单个参数传递给mixin,less,Less,我做了一个多站渐变混合,简单地为*-线性渐变的所有供应商前缀添加@参数。它是有效的,当我定义一个有很多止损点的梯度时,我很恼火,当使用mixin时,我必须把所有的东西放在一条线上,就像这样: .gradientMultiple(~'top, rgba(255, 255, 255, 1) 0%, rgba(254, 254, 254, 1) 16%, rgba(252, 252, 252, 1) 36%, rgba(239, 239, 239, 1) 66%, rgba(18, 34, 106,

我做了一个多站渐变混合,简单地为*-线性渐变的所有供应商前缀添加@参数。它是有效的,当我定义一个有很多止损点的梯度时,我很恼火,当使用mixin时,我必须把所有的东西放在一条线上,就像这样:

.gradientMultiple(~'top, rgba(255, 255, 255, 1) 0%, rgba(254, 254, 254, 1) 16%, rgba(252, 252, 252, 1) 36%, rgba(239, 239, 239, 1) 66%, rgba(18, 34, 106, 1) 66%, rgba(13, 31, 136, 1) 84%');
为了可读性,我想将函数参数放在多行上,但它会生成一个解析错误:

.gradientMultiple(~'top, 
    rgba(255, 255, 255, 1) 0%, 
    rgba(254, 254, 254, 1) 16%, 
    rgba(252, 252, 252, 1) 36%, 
    rgba(239, 239, 239, 1) 66%, 
    rgba(18, 34, 106, 1) 66%, 
    rgba(13, 31, 136, 1) 84%
');
以下是mixin的定义:

.gradientMultiple ( ... ) {
      background-image: -webkit-linear-gradient(@arguments);
      background-image: -moz-linear-gradient(@arguments);
      background-image: -ms-linear-gradient(@arguments);
      background-image: -o-linear-gradient(@arguments);
      background-image: linear-gradient(@arguments);
   }
.gradientMultipletop, rgba255,255,255,10%, rgba254,254,254,1 16%, RGBA252252252,136%, RGBA239239239,1 66%, rgba 18,34,106,166%, rgba 13,31136,184%;; 另见:

最后一句话是 当mixin强制您提供一个字符串,或者您不想让LESS计算参数值时,您可以使用一点javascript:

免责声明:JS评估现在已被弃用,可能会在不到3/4的时间内被删除,因此只有在处理没有其他替代方案的遗留代码时才使用此选项

.keyframes(~`
    "translate, " +
    "50% { transform: translateX(calc(50% - 25px)) } " +
    "100% { transform: translateX(0px) } "
`);

请看我上面的答案,mixin只接受一个参数,而不是多个参数。此外,OP是关于拆分转义字符串的。实际上,这就是重点,对于这个用例,您根本不需要任何字符串或转义。请参阅编辑-您试图推送一个人工示例来证明蹩脚的转义js攻击-在某些罕见/ege情况下,您需要内联js,但将任何参数传递给mixin并不是其中之一,所以您很快就超出了Q的范围。例如,您编辑的snipped是在普通的Less中完成的,也不需要js黑客。