我正在将Unsemantic从SASS转换为LESS,在构建循环以创建我的类时:
显然,可以将这6个类压缩为一次定义。因此,我的想法是使用循环创建一个巨大的字符串,然后将
.populateGridClasses (@index, @interval) when (@index > 0) {
@num: @index * @interval;
(~".eh-grid-@{num}, .eh-mobile-grid-@{num}, .eh-tablet-grid-@{num}") {
.grid();
}
.populateGridClasses(@index - 1, @interval);
}
.populateGridClasses (0, @interval) {}
// Create the grids in an inverval of 5
.populateGridClasses(20, 5);
// 创建三等分网格 .populateGridClasses(3, 33);
它会创建以下类:
.eh-grid-100, .eh-mobile-grid-100, .eh-tablet-grid-100 {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 0 10px;
}
.eh-grid-95, .eh-mobile-grid-95, .eh-tablet-grid-95 {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 0 10px;
}
...
显然,可以将这6个类压缩为一次定义。因此,我的想法是使用循环创建一个巨大的字符串,然后将
.grid()
mixin添加到其中:@test: "";
.populateGridClasses4 (@index, @interval) when (@index > 0) {
@num: @index * @interval;
@ntest: ".eh-grid-@{num}, .eh-mobile-grid-@{num}, .eh-tablet-grid-@{num}";
@test: "@{test}@{ntest}";
.populateGridClasses4(@index - 1, @interval);
}
.populateGridClasses4 (0, @interval) {}
.populateGridClasses4(20, 5);
("@{test}"){
padding-left: 1px;
}
但是这给了我一个LESS错误LESS: Out of stack space
。你有什么想法,如何创建这个巨大的字符串,以便我可以创建69个类,并只定义它们一次?当然是通过编程实现。
@test
?例如:.populate-grid-classes(20, 5, "classes");
。我在这方面遇到了困难。我想将此功能移至我的mixin LESS文件中,并希望将此代码用于33%和66%,因此我的想法是将您的最后一行@{test1}, @{test2} { padding-left: 1px; }
作为示例。 - EHorodyski