2013-02-16 12 views
9

Pracuję w ramach "SASS/COMPASS" mojego własnego (rodzaju).COMPASS/SASS jak interpolować zmienną do @import "ścieżka sprite/*. Png"?

Ustawiam zmienną - $ sprite - która jest nazwą folderu, w którym przechowywane są wszystkie obrazy.

Robię to w ten sposób, więc później mogę użyć tej nazwy do zamiany z obrazem-mixin i generacji sprite.

Wszystko byłoby świetnie, gdyby @import "# {$ sprite}/*. Png" działał.

Wszelkie pomysły?

//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

Wygląda jak kompas [obsługuje tylko interpolację w imporcie bardzo wąsko] (https://github.com/nex3/sass/issues/49) – steveax

Odpowiedz

3

Obawiam się, to nie jest po prostu możliwe w tej chwili (i nigdy nie będzie, jak to wygląda od the issue that steveax posted). Jeśli naprawdę tego chcesz, będziesz musiał napisać własny mały preprocesor, który rozwiąże zmienną, a następnie wypisze ją do pliku .sass/.scss. Alternatywnie prześlij żądanie funkcji ...