2013-06-13 10 views
28

Próbuję użyć motywu jqtouch opartego na SASS i COMPASS. Mam custom.scss plików z najbardziej prostego kodu, jeden import i jedna zmienna nadpisać:Jak zastąpić zmienne SCSS podczas kompilacji do CSS

@import 'jqtouch'; 

// Override variables 
$base-color: #fe892a;/* The default base which is later used for toolbar, list, and button backgrounds.*/ 

Kiedy teraz skompilować plik SCSS CSS, to będzie w zasadzie tylko wygenerować css jqtouch z moim pliku. Specyfikacja kolorów nigdzie nie jest widoczna, chociaż zmienna jest definitywnie poprawna dla dokumentacji (Official Guide) oraz w pliku jqtouch.scss, który importuję do kostiumizacji.

Używam Sass 3.2.9 i Compass 0.12.2 na komputerze z systemem Windows.

Próbowałem już z więcej zmiennych i różnych importów plików, ale wynik jest zawsze, że moje wartości zastąpienia nie są włączone.

Plik konfiguracyjny ruby ​​dla kompasu wydaje się nieprzyjemny.

Czy ktoś ma pomysł, co dzieje się w procesie, aby moje wartości zastępcze zostały zignorowane?

+0

Jak się okazuje w pliku importu (jqtouch.scss) wartości zmiennych zostały ustawione na sztywno na wartości kolorów. Dlatego nie można ich zastąpić. Właśnie skomentowałem zakodowane wartości i mogłem wtedy ustawić własne wartości. – bouscher

+0

miałem podobne pytanie i wpadł własnego rozwiązania: [argument wiersza polecenia jako var w Sass, na ustalony CDN URL na kompilacji] (http://stackoverflow.com/a/31406151/2563782) –

Odpowiedz

52

Ustawienie koloru po zostało już użyte. Zasadniczo, co starasz się zrobić to w ten sposób:

$color: red; 

.foo { 
    background: $color; 
} 

$color: green; 

zależności od sposobu jqtouch jest napisane, że nie może być w stanie zmodyfikować kolory w ogóle. Musisz zmienne mają być ustawione jako domyślne, aby zastąpić je z wyprzedzeniem:

$color: green; 
$color: red !default; // red is only used if $color is not already set 

.foo { 
    background: $color; // color is green 
} 

więc kod powinien być napisany jako takie:

// Override variables 
$base-color: #fe892a;/* The default base which is later used for toolbar, list, and button backgrounds.*/ 

@import 'jqtouch'; 
+0

Niestety to nie jest to, oczywiście, że twoja konfiguracja była taka, jak zacząłem, ale to też nie działa dla mnie. – bouscher

+1

Jak się okazało w pliku importu (jqtouch.scss) wartości zmiennych zostały ustawione na sztywno na wartości kolorów. Dlatego nie można ich zastąpić. Właśnie skomentowałem zakodowane wartości i mogłem wtedy ustawić własne wartości. – bouscher

+0

Czy patrzymy na to samo źródło? Ponieważ ten, na który patrzę, używa wartości domyślnych: https://github.com/senchalabs/jQTouch/blob/master/themes/scss/include/_core.scss – cimmanon

Powiązane problemy