在LESS中,我可以循环使用class/mixin“;模式;?

在LESS中,我可以循环使用class/mixin“;模式;?,less,font-awesome,Less,Font Awesome,我需要通过一个“模式”循环400多个字体很棒的图标变量(查看),我的意思是模式是@fa-var-*,即@fa-var-apple,@fa-var-archive等等 目的是创建一些自定义类,如.btn apple,.btn archive,并在变量中使用unicode值 这在更少的时间内是可能的吗?您可以使用如下数组循环动态创建多个类。但是,必须在执行循环之前定义数组列表值 @variables: adjust,apple,archive,camera,coffee; .loop(@varCo

我需要通过一个“模式”循环400多个字体很棒的图标变量(查看),我的意思是模式是
@fa-var-*
,即
@fa-var-apple
@fa-var-archive
等等

目的是创建一些自定义类,如
.btn apple
.btn archive
,并在变量中使用unicode值


这在更少的时间内是可能的吗?

您可以使用如下数组循环动态创建多个类。但是,必须在执行循环之前定义数组列表值

@variables: adjust,apple,archive,camera,coffee;

.loop(@varCount) when (@varCount > 0){
  @temp: extract(@variables,@varCount);
  .btn-@{temp}{
    font-family: FontAwesome;
    @varName: "fa-var-@{temp}";
    &:before{content: @@varName};
  }
  .loop(@varCount - 1);
}
.loop(length(@variables));

您还可以使用中提供的“for”代码段。这是非常有用的。(不幸的是,我只能给他一个+1:D)


注意:这并不是说无法直接读取文件。由于LESS不支持JS评估,因此可以通过使用文件读取器(甚至可能是AJAX请求)来完成,然后使用正则表达式查找模式并在返回的数组上循环等等。但是这会变得太复杂,这会成为一个过度杀戮的函数。

您的意思是使用数组循环或遍历整个variables.less文件来提取其中存在的所有变量,而不是定义数组吗?不,不是直接定义数组。要循环浏览这些类,您必须创建一个明确的列表,如
@图标:apple、archive、array等(不过,如果你真的需要它,它并没有那么乏味,因为这可以通过从任何合适的FA图标列表中进行简单的搜索和替换转换来完成)。然后在两对之间循环。如果您不需要图标字符代码,也可以从列表中删除它们以简化循环。@seven Phase max:这与我的做法类似。但我想一种变通的方法可能是使用Javascript文件读取器读取内容,然后以某种方式将其放入LESS中,因为LESS可以计算JS。但我不认为这是值得的。谢谢你们两位。我的尝试当然是直接循环,因为变量列表可能会改变(添加了新图标)@哈里,你能写一个我会接受的答案吗?