Ich arbeite an Unsemantic von SASS zu LESS Umwandlung und während ich den Aufbau der Schleife meine Klassen zu erstellen:Concatenate String in WENIGER in Schleife
.populateGridClasses (@index, @interval) when (@index > 0) {
@num: @index * @interval;
(~"[email protected]{num}, [email protected]{num}, [email protected]{num}") {
.grid();
}
.populateGridClasses(@index - 1, @interval);
}
.populateGridClasses (0, @interval) {}
// Create the grids in an inverval of 5
.populateGridClasses(20, 5);
// Erstellen Sie die Gitter in Terzen .populateGridClasses (3, 33);
Es schafft die Klassen als so:
.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;
}
...
Offensichtlich dass condesnsed werden könnte, so dass alle 6 dieser Klassen auf einmal definiert sind. Also meine Idee ist, die Schleife zu verwenden, um einen riesigen String zu erstellen, die dann werde ich fügen Sie den .grid()
mixin zu:
@test: "";
.populateGridClasses4 (@index, @interval) when (@index > 0) {
@num: @index * @interval;
@ntest: "[email protected]{num}, [email protected]{num}, [email protected]{num}";
@test: "@{test}@{ntest}";
.populateGridClasses4(@index - 1, @interval);
}
.populateGridClasses4 (0, @interval) {}
.populateGridClasses4(20, 5);
("@{test}"){
padding-left: 1px;
}
Aber das gibt mir eine weniger Fehler LESS: Out of stack space
. Irgendeine Idee, wie ich diese massive Zeichenfolge erstellen kann, damit ich 69 Klassen erstellen und sie nur einmal definieren kann? Programmatisch natürlich.
Wow, das ist einfach atemberaubend. Ich bin sehr, sehr beeindruckt. Ich habe noch eine Frage, wenn es Ihnen nichts ausmacht. Anstatt "@ test" zu definieren, gibt es eine Möglichkeit, einen String als Parameter zu übergeben und diese erste Funktion (unsere 1 Bedingung) eine Variable zu erstellen, die nach dem String-Inhalt dessen, was wir übergeben, benannt ist? Bsp .: '.populate-grid-classes (20, 5," classes ");'. Ich kämpfe daran. Ich möchte diese Funktionalität in meine Mixins LESS-Datei verschieben und möchte diesen Code auch für 33% und 66% wiederverwenden. Meine Idee wäre also, die letzte Zeile '@ {test1}, @ {test2 } {padding-left: 1px; } 'als ein Beispiel. – EHorodyski
Auch wenn Sie wissen, wie ich Zeilenumbrüche mit diesen Zeichenfolgen verwenden könnte, ist Google auf einen "Lass mich ignorieren Less CSS" -Kick ... – EHorodyski