Less 运行时生成的动态类名较少,或者从数组循环生成的类较少

Less 运行时生成的动态类名较少,或者从数组循环生成的类较少,less,dynamic-css,Less,Dynamic Css,目前,我的一位开发人员开发了以下文件: .countryFlag( @countryName :"DK"){ content: url("/images/flags/@{countryName}.gif") no-repeat center; } a.flag-DK { .countryFlag (); } a.flag-DE { .countryFlag (DE); } a.flag-EE { .countryFlag (EE); } ... 与大约2

目前,我的一位开发人员开发了以下文件:

.countryFlag( @countryName :"DK"){
    content: url("/images/flags/@{countryName}.gif") no-repeat center;
}

a.flag-DK {
    .countryFlag ();
}

a.flag-DE {
    .countryFlag (DE);
}

a.flag-EE {
    .countryFlag (EE);
}

...
与大约20个国家合作。我想知道,使用循环或运行时创建的动态名称,是否可以用更少的资源更智能地实现这一点。考虑下面描述我想要的伪代码:

a.flag-@{country} {
  content: url("/images/flags/@{country}.gif") no-repeat center;
}
这完全符合任何定义。我知道这可能会产生很多冲突,但也许可以通过regex进一步缩小冲突?有道理,但我没能找到这个

另一种方法是使用某种循环创建“静态”css类。考虑这个伪选项:

@countries: 'dk', 'de', 'uk', 'us', ...;

for(country : countries) {
    a.flag-@{country} {
        content: url("/images/flags/@{country}.gif") no-repeat center;
    }
}
从而为预先确定的国家列表创建类

这些备选方案中有哪一种是以某种方式提供的?或者你能就我可能忽略的第三个选择提出建议吗?当我看到定义了20个几乎相同的类,只有一个很小的差异字符串,并且认为CSS预处理器必须能够更智能地完成这项工作时,我觉得有点愚蠢

谢谢

也有几行文档。几天前,当我面临像你这样的问题时,我发现它非常有用

您可以简单地声明一个值列表,作为foreach循环中的字符串使用。(例如
@list:香蕉、苹果、梨、土豆、胡萝卜、桃子;


确保您使用的是Less的最新版本

你会找到一个很好的答案。我在发布之前看到了这个,但不幸的是,它并不能解决我的问题,因为我需要从类名中获取国家定义,以实现我所追求的目标。不过,谢谢:)另一个示例假设一组变量是预定义的。我需要数组的迭代来假定参数列表(@countries)中定义的值,而不是将它们解释为变量名。请参阅。但是是的,正如@toomuchdesign所建议的,中的“图标”示例更接近您所需要的。