在LESS中,我可以循环使用class/mixin“;模式;?
我需要通过一个“模式”循环400多个字体很棒的图标变量(查看),我的意思是模式是在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
@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。但我不认为这是值得的。谢谢你们两位。我的尝试当然是直接循环,因为变量列表可能会改变(添加了新图标)@哈里,你能写一个我会接受的答案吗?