2013-03-26 28 views
5

CSS geliştirmek için en son SASS/Pusula sürümlerini kullanıyorum. Ben başında bazı SUKDÖ değişkenleri ilan ettik "medya = all" Böyle stil:"Tümü" stil sayfasında yazdırma stil sayfası geçersiz kılma değişkenlerindeki sass değişkenleri

Daha sonra ben bir baskı stil (@import 'print.scss';) içe bu SCSS dosyasında
$var1: red; 
$var2: blue; 
$var3: black; 
$var4: green; 

hangi görünüyor böyle:

@media print { 
    $var1: black; 
    $var2: black; 
    $var4:black; 
} 

Ben baskı stil değişkenleri Tarayıcı "baskı modunda" ise "normal" sadece vars geçersiz kıldığını düşündü. Ancak, değişkenler 'u her zaman'u önceden bildirilmiş olan "normal" varyasyonlarını geçersiz kılar.

Kafam biraz karıştı ve herhangi bir yardımı takdir ediyorum.

Teşekkürler!

cevap

2

this soruları için, şu anki formunuzda mümkün değil. Bunu başarmak için, size gibi, $varX kullanan her stili içe gerekecek:

$blue: blue; 

.test{ 
    color: $blue; 
} 

@media print { 
    $blue: pink; 
    .test{ 
     color: $blue; 
    } 
} 

çıkışı:

.test{color:blue}@media print{.test{color:pink}} 

İdeal çözüm değil (elde edersiniz tekrarlanan bir çok kod), ancak maalesef CSS'nin çalışması nedeniyle yapabileceğiniz tek şey bu.

$blue: blue; 
$print_blue: pink; 

.test{ 
    color: $blue; 
    text-align: right; 
    @media print { 
     color: $print_blue; 
    } 
} 

çıktı: Cevabınız için

.test{color:blue;text-align:right}@media print{.test{color:pink}} 
+0

Teşekkür

Bu biraz daha iyi bir çözüm olabilir! Bunun gibi bir şey yapmak zorunda olduğumdan korktum :-(Belki bu özellik bir sonraki SASS sürümü için bir şey olabilir ... – captainh2ok

+1

@ captainh2ok bu, bir sonraki sürümün bir özelliği olamaz çünkü SASS derleyicisinin sunucu hangi durumda olduğunu bilemez tarayıcı içeride olacaktır. CSS'nin derlemesini istemciye taşımak zorundasınız. LESS bunu yaparken onunla daha az çalışabilir. – Christoph

+1

@Christoph Kesinlikle haklısınız. SASS derleyicisi bir "yapay zeka" gibi değil. Ve bazen de ... – captainh2ok