我正在努力将Unsemantic从 SASS 转换为 LESS,同时我正在构建循环以创建我的类:
.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 个类并且只定义一次的任何想法?当然,以编程方式。