Ich versuche, mein eigenes kleines skalierbares Raster in CSS/scss zu bauen. Bisher fand ich diese Entscheidung:So weisen Sie CSS-Variablenwert zu scss-Variable oder Ausdruck zu
:root {
--page-width: 1170px;
--gutter: 15px;
--columns: 12;
}
.wrapper {
max-width: var(--page-width);
margin-right: auto;
margin-left: auto;
padding-left: var(--gutter);
padding-right: var(--gutter);
}
.row {
margin-left: calc(-1 * var(--gutter));
margin-right: calc(-1 * var(--gutter));
}
.col {
display: block;
margin-left: var(--gutter);
margin-right: var(--gutter);
}
Dann habe ich versucht SCSS zu verwenden, um Spalten Klassen Beschreibung (die mir Anzahl der Spalten in einem einzigen Ort in ganzem Code ändern kann zur gleichen Zeit zu verkürzen - in CSS Variable --columns
) wie diese
@for $n from 1 through var(--columns) {
.col-#{$n} {width: calc(#{$n}/var(--columns) - var(--gutter) * 2); }
}
aber es hat nicht funktioniert. Das interessantes Detail ist, dass, wenn ich @for
Aussage von @for $n from 1 through
var(--columns)
`` zu @for $n from 1 through
12
es kompiliert und ändern. Und es gibt kein Problem beim Kompilieren der CSS-Variable innerhalb @for
Körper. .col-#{$n} {width: calc(#{$n}/var(--columns) - var(--gutter) * 2); }
fügt sich gut in die benötigten Klassen ein.
Wenn ich scss-Variable $columns
anstelle von CSS-Variable verwenden, dann muss ich meine Grid.scss-Datei in alle anderen scss-Dateien des Projekts importieren.
Es ist meine erste Frage zu StackOverflow, also lassen Sie mich wissen, wenn weitere Details benötigt werden.
Mögliche Duplikat [kompilieren Wie erzwinge Integer in CSS Variable?] (Https://stackoverflow.com/questions/44524527/how-to-force-integer-in-css-variable) –
Saurabh Gour, eigentlich ja. Die von Ihnen vorgeschlagene Frage deckt mein Problem ab. Aber ich würde es niemals unter dem aktuellen Header "How to Force Integer in CSS Variable" finden. –
Ich habe fast gedrückt "Das hat mein Problem gelöst!" -Taste, aber dann lese ich die erklärende Nachricht. Es besagt, dass dies Ihre Frage als ein Duplikat markiert, zukünftige Leser auf die ursprüngliche Frage verweist und verhindert, dass weitere Antworten hier gepostet werden. Es macht mir nichts aus, meine Frage als ein Duplikat im Allgemeinen zu markieren. Aber in diesem konkreten Fall glaube ich, dass 'Wie man Integer in CSS Variable erzwingt?' Ist nicht der Punkt und nicht das Hauptthema. Bleibt meine Frage sichtbar oder wird sie versteckt? Wie erfolgt die Umleitung? –