Dynamische Klassennamen im WENIGER
Habe ich die folgenden etwas WENIGER code arbeiten
@iterations: 940;
@iterations: 940;
@col:2.0833333333333333333333333333333%;
//helper class, will never show up in resulting css
//will be called as long the index is above 0
.loopingClass (@index) when (@index > -20) {
//create the actual css selector, example will result in
//.myclass_30, .myclass_28, .... , .myclass_1
(~".gs@{index}") {
//your resulting css
width: (@index/20+1)*@col;
}
//next iteration
.loopingClass(@index - 60);
}
//end the loop when index is 0
.loopingClass (-20) {}
//"call" the loopingClass the first time with highest value
.loopingClass (@iterations);
Gibt es unser grid-system, etwa so:
.gs940 {
width: 100%;
}
.gs880 {
width: 93.75%;
}
.gs820 {
width: 87.5%;
}
.gs760 {
width: 81.25%;
}
.gs700 {
width: 75%;
}
etc etc etc
Nun, was ich tun möchte, ist etwas Mathematik, um die Namen der Klassen zu erzeugen, die folgenden Klassen
.gs220-700
.gs280-640
.gs340-580
.gs400-520
.gs460-460
.gs520-400
.gs580-340
.gs640-280
.gs700-220
etc etc etc
grundsätzlich wäre dies
.(@index) - (920px minus @index)
Aber ich habe keine Ahnung, ob dies möglich ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, du bist weit Weg. Was ich getan habe ist, erstellen Sie eine zweite variable in die mixin, genannt
@index2
. Alle diese tut, ist zu finden, die '920px minus @index" - Wert ein, den Sie suchen:diese wird dann angehängt, um den Namen der Klasse:
Dies ist die komplette Schleife:
Damit bekommen nur die, die Sie suchen (gs220-700 gs700-220), ändern Sie einfach
@iterations
gleich 700.Erwähnenswert, dass derzeit, so erstellen Sie die Klassen in der umgekehrten Reihenfolge, wie Sie angegeben haben, Sie in Frage stellen.
Diese ganze Frage war sehr hilfreich für mich. Ich wollte nur die Lösung posten, um mein problem als die Art und Weise zu tun, es hat sich geändert, seit
LESS v 1.4
. WENIGER ChangelogAnstatt mit den
~
Zeichen, Sie schreiben Sie einfach den Teil des namens, den Sie möchten zusammen mit der normalen@
- und Variablen-Namen mit{}
umgibt. Also:#class@{variable}
.Zum Beispiel, meine Lösung mit der gleichen Art von loop wurde, wie:
Und produziert die folgenden: