Ich arbeite mit der SCSS Syntax von SASS, um ein dynamisches Rastersystem zu schaffen, aber ich habe einen Haken gefunden.SCSS/SASS: Wie man eine Liste von Klassen mit Kommas dynamisch erzeugt, die sie trennen
Ich versuche, die Grid-System vollständig dynamisch so zu machen:
$columns: 12;
dann schaffe ich die Spalten wie folgt aus:
@mixin col-x {
@for $i from 1 through $columns {
.col-#{$i} { width: $column-size * $i; }
}
}
Welche Ausgänge:
.col-1 {
width: 4.16667%;
}
.col-2 {
width: 8.33333%;
}
etc...
Dies funktioniert gut, aber was ich als nächstes tun möchte, ist dynamisch generieren eine lange li st der Spalte durch Komma basierend auf der Anzahl von Spalten getrennt Klassen $ gewählt - zB ich möchte es wie folgt aussehen:
.col-1,
.col-2,
.col-3,
.col-4,
etc... {
float: left;
}
Ich habe müde dies:
@mixin col-x-list {
@for $i from 1 through $columns - 1 {
.col-#{$i}-m { float: left; }
}
}
aber die Ausgabe ist Dies ist:
Ich bin ein wenig fest auf der Logik hier sowie die SCSS-Syntax erforderlich, um etwas wie das zu erstellen.
Hat jemand irgendwelche Ideen?
Dank
Aus Neugier: "@mixin col-x { @für $ i von 1 bis $ Spalten { .col - # {$ i} {width: $ spaltengroß * $ i; } } } "Können Sie erklären, was dieser Code genau tun? – Mag
@Mag Es Schleifen durch die Anzahl der Spalten, die ich zB $ Spalten: 6, und erstellt eine Klasse namens col-1, col-2 usw. Also, wenn ich will 6 Spalten, läuft nur bis col-6 und gibt dann jede Spaltenbreite von (100% dividiert durch die Anzahl der $ Spalten multipliziert mit der Spaltennummer) zB col-3 = (100%/6) * 3 = 50% – Josh