Ich versuche, die Zeichenfolgeninterpolation für meine Variable zu verwenden, um auf eine andere Variable zu verweisen:
// Set up variable and mixin
$foo-baz: 20px;
@mixin do-this($bar) {
width: $foo-#{$bar};
}
// Use mixin by passing 'baz' string as a param for use $foo-baz variable in the mixin
@include do-this('baz');
Aber wenn ich das mache, bekomme ich folgenden Fehler:
Undefinierte Variable: "$ foo-".
Unterstützt Sass Variablenvariablen im PHP-Stil?
Dies ist tatsächlich mit SASS-Maps anstelle von Variablen möglich. Hier ist ein kurzes Beispiel:
Dynamisch referenzieren:
Ausgaben als:
Dynamisch erstellen:
Ausgaben als:
quelle
Immer wenn ich einen bedingten Wert verwenden muss, stütze ich mich auf Funktionen. Hier ist ein einfaches Beispiel.
quelle
@include do-this($foo);
? ... aber das wäre sinnvoll, wenn die Funktion tatsächlich etwas getan hätte, aber es geht nur vorbei ...Hier ist eine weitere Option, wenn Sie mit Schienen arbeiten und möglicherweise unter anderen Umständen.
Wenn Sie am Ende der Dateierweiterung .erb hinzufügen, verarbeitet Rails erb für die Datei, bevor sie an den SASS-Interpreter gesendet wird. Dies gibt Ihnen die Möglichkeit, in Ruby das zu tun, was Sie wollen.
Zum Beispiel: (Datei: foo.css.scss.erb)
Ergebnisse in folgenden scss:
Was grob gesagt zu folgendem CSS führt:
quelle
Ich bin kürzlich auf die Notwendigkeit gestoßen, eine Farbe dynamisch zu referenzieren.
Ich habe für jedes Projekt eine _colours.scss-Datei, in der ich alle meine Farben einmal definiere und sie durchgehend als Variablen referenziere.
In meiner Datei _forms.scss wollte ich Schaltflächenstile für jede verfügbare Farbe einrichten. Normalerweise eine mühsame Aufgabe. Dies half mir zu vermeiden, dass ich für jede Farbe den gleichen Code schreiben musste.
Der einzige Nachteil ist, dass Sie jeden Farbnamen und Wert auflisten müssen, bevor Sie das eigentliche CSS schreiben.
quelle
Das Erstellen einer dynamischen Variablen ist in SASS derzeit nicht möglich, da Sie eine weitere Variable hinzufügen / verbinden, die beim Ausführen des Befehls sass einmal analysiert werden muss.
Sobald der Befehl ausgeführt wird, wird ein Fehler für ungültiges CSS ausgegeben, da alle deklarierten Variablen dem Heben folgen.
Einmal ausgeführt, können Sie Variablen nicht mehr im laufenden Betrieb erneut deklarieren
Um zu wissen, dass ich dies verstanden habe, geben Sie bitte an, ob Folgendes korrekt ist:
Sie möchten Variablen deklarieren, bei denen der nächste Teil (Wort) dynamisch ist
etwas wie
Wenn Sie dies wünschen, befürchte ich, dass dies derzeit nicht zulässig ist
quelle