2016-10-25 5 views
0

Ich versuche, eine jede Schleife erstellen, die einen Klassennamen erstellt und ruft ein Mixin mit diesem Namen als Parameter. Die Idee ist, dass ich eine Liste machen kann:Sass variable Innenmischung gehören

$list: (item1, item2, item3, ect); 

Dann eine jede Schleife laufen eine Klasse mit diesem Namen zu erstellen und einen mixin mit diesem Namen als Parameter aufrufen.

@each $name in $list { 
    .#{$name} { 
     @include mixin($name); 
    } 
} 

Dieser Parameter in der mixin eine andere Variable mit dem gleichen Namen ruft die Attribute setzen ich im mixin müssen. Dies scheint etwas zu sein, was ich tun könnte, aber ich kann nicht herausfinden, wie man den Mixin-Parameter als eine Variable anstatt nur als eine Textzeile erstellt. Muss ich die Interpolation auf eine bestimmte Weise verwenden, um das $ vor dem Listennamen hinzufügen zu können? Dadurch ist nicht zu funktionieren scheint:

@include mixin($#{$name}); 

Was ich brauche es die Werte von item1, zu tun ist, verwenden item2, item3, ect den Klassennamen zu erstellen, aber dann als Variablen item1, $ $ senden item2 , $ item3 durch die Mixin und ich bin mir nicht sicher, was ich sonst noch versuchen sollte.

+0

Warum brauchen Sie Variablen, um jeden auszuspucken ?, das ist, was Karten mit Eigenschaften/Werten sind, – Thielicious

+0

Ich versuchte, grunt spritesmith zu verwenden, aber wenn ich es eine scss-Datei für mich erstellen, wird es nicht ausgedruckt Die CSS-Stile für jedes Symbol im Sprite, als ob es eine CSS-Datei erstellen würde. Also habe ich versucht, eine jede Schleife zu machen, damit ich den Klassennamen ausdrucken und das Sprite-Mixin aufrufen kann, das denselben Namen als Variable hat. – user2339729

Antwort

2

Verwenden Sie nur den Variablennamen $name wie Sie das erste Mal funktioniert haben.

Here is an example I made using your code.

+0

In diesem Beispiel wird der Wert über das Mixin gesendet. Was ich brauche, ist eine Variable durch den Mix zu senden. Ich müsste die Variablen $ red, $ green und $ yellow senden. Nicht die Werte 'rot', 'grün' und 'gelb'. – user2339729

+0

schöne Farbauswahl – Thielicious

+0

@ user23339729 Wenn Sie Variablennamen anzeigen möchten, dann $ colors: (rot: '$ red', grün: '$ green', gelb: '$ yellow'); oder ich verstehe deine Logik nicht – Thielicious

Verwandte Themen