2013-02-16 7 views
9

Ich arbeite an einem SASS/COMPASS "Framework" meiner eigenen (Art von).COMPASS/SASS Wie interpoliere ich eine Variable zu @import "sprite/*. Png" Pfad?

Ich setze eine Variable - $ Sprite - das ist der Name des Ordners, in dem alle Bilder gespeichert sind.

Ich mache es so, also später kann ich diesen Namen für Replace-mit-Bild-Mixin und Sprite-Generation verwenden.

Alles wäre toll, wenn @import "# {$ sprite}/*. Png" funktionierte.

Irgendwelche Ideen?

//sprite images folder name 
     $sprite: "sprite"; 

    //settings 
     $sprite-sprite-base-class: ".#{$sprite}" - *works*; 
     $sprite-spacing: 20px; 
     $sprite-sprite-dimensions: true; 

    //generate sprite 
     @import "sprite/*.png"; - normal path - *works* 
     @import "#{$sprite}/*.png" - path with a variable in it - *doesn't work* 

    //mixin   
     @mixin replace-with-image($imageName){ 
      @include replace-text-with-dimensions("#{$sprite}/#{$imageName}.png"); 
      @extend %dis-ib; 
     } - *works* 
+1

Sieht aus wie Compass [unterstützt nur die Interpolation bei Importen sehr eng] (https://github.com/nex3/sass/issues/49) – steveax

Antwort

3

ich fürchte, das einfach im Moment nicht möglich ist (und wird es nie sein, wie es aus the issue that steveax posted aussieht). Wenn Sie das wirklich wollen, müssen Sie Ihren eigenen kleinen Präprozessor schreiben, der Ihre Variable auflöst und sie dann in eine .sass/.scss Datei ausgibt. Alternativ können Sie eine Feature-Anfrage senden ...

Verwandte Themen