Dynamisch definieren Sie eine variable in CSS WENIGER

Ich versuche zum erstellen eines Mixins, die dynamisch definiert Variablen, die in WENIGER CSS, tatsächlich die Zuordnung zu einer zusammengesetzten Namen.

Vereinfachtes use-case (nicht das echte):

.define(@var){
    @foo{var}: 0;
}

Dann würde man rufen Mixins als solche:

.define('Bar'){
    @fooBar: 0;
}

Da diese Art der string-interpolation ist möglich, während mit Selektoren-Namen, ich Frage mich, ob das dasselbe wäre möglich für Variablennamen; bisher hatte ich kein Glück mit verschiedenen Schreibweisen, die ich ausprobiert (andere als die oben genannten, ich habe versucht, zu entkommen, zu zitieren, mit der ~ Präfix und so weiter).

Bearbeiten

Habe ich gerade versucht, eine weitere Sache, und ich fühle, könnte ich schließen; aber ich bin mit einer kuriosität, der WENIGER syntax. Wenn ich dies Schreibe:

.define(@var){
    #namespace {
         @foo: @var;
    }
}

Und dann rufen Sie es so auf:

.define(0)

Kann ich dann verwenden @foo im üblichen haben Mode:

.test {
     #namespace;
     property: @foo; /* returns 0 */
}

Aber das gleiche gilt nicht im Falle einer string-Interpolation-Auswahl:

.define(@var, @ns){
    #@{ns} {
         @foo: @var;
    }
}

.define(0, namespace);

.test {
     #namespace;
     property: @foo;
}

Den obigen code gibt mir die folgende Fehlermeldung:

Name-Fehler: #namespace nicht definiert ist

Jedoch die string-interpolation war erfolgreich und gültig. Als eine Angelegenheit von Tatsache, wenn ich nehmen die .test Teil, und ändern Sie die oben, um die Ausgabe eines test-Eigenschaft, ich kann sehen, dass die CSS korrekt analysiert. Ich meine:

.define(@var, @ns){
    #@{ns} {
         @foo: @var;
         prop: @foo;
    }
}

.define(0, namespace);

Ausgänge die folgende CSS:

#namespace {
    prop: 0;
}
Schreibe einen Kommentar