2013-04-30 21 views
6

{less} kullanıyorum ve parantez kullanımıyla ilgili bir sorun yaşadım. CSS3 dönüşüm özelliği için bir mixin yazdım. Derlenmiş CSS'de nasıl parantez olduğunu anlayamıyorum. Daha az parantezleri bir işlem olarak görür ve bunları ihmal eder.Daha az stil sayfası dili: parantezlerin derlenmesini önleme derlenmiş CSS

Orjinal CSS:

.plus { 
     -webkit-transform: rotate(45deg); 
     -moz-transform: rotate(45deg); 
     -o-transform: rotate(45deg); } 

Az mixin yazdım:

.transform (@action, @value){ 
     -webkit-transform: @action(@value); 
     -moz-transform: @action(@value); 
     -o-transform: @action(@value); } 

Ve sonuçları derlenmiş CSS:

.plus { 
     -webkit-transform: rotate 45deg; 
     -moz-transform: rotate 45deg; 
    -o-transform: rotate 45deg; } 

cevap

5

Sadece bir değer olarak saklayabilir ve aradığınızda ihtiyacınız olan her şeyi iletebilirsiniz.

.transform(@value) { 
    -webkit-transform: @arguments; 
    -moz-transform: @arguments; 
    transform: @arguments; 
} 

.plus { 
    .transform(rotate(45deg)); 
    .transform(scale(1.5, 2.0)); 
} 

bu işleri
.plus { 
    -webkit-transform: rotate(45deg); 
    -moz-transform: rotate(45deg); 
    transform: rotate(45deg); 
    -webkit-transform: scale(1.5, 2); 
    -moz-transform: scale(1.5, 2); 
    transform: scale(1.5, 2); 
} 
+0

derler. Hala başımı argümanlara ve daha azına dayatırmaya çalışıyorum. Programcı değilim, bu yüzden beni aptal hissettiriyor. teşekkürler – Alan

+0

'@ arguments' değişkenini kullanmak, tüm argümanlar karışımından aktarmanın kolay bir yoludur. Örneğimde, sadece bir tane olduğundan gerçekten gerekli değil, sadece '@ value' değişkenini de kullanabilirsiniz. – ferne97

4
tuşu (böyle bir şey için mixin değiştirin

onu bir dizeye ve sonra bir çıkış değeri kullanarak):

.transform (@action, @value){ 
    @escapedValue: ~"@{action}(@{value})"; 
    -webkit-transform: @escapedValue; 
    -moz-transform: @escapedValue; 
     -o-transform: @escapedValue; 
}