2013-04-30 18 views
6

Używam {less} i wystąpił problem z użyciem nawiasów. Napisałem mixin dla własności transformacji CSS3. Nie mogę znaleźć sposobu na nawiasy w skompilowanym pliku CSS. Mniej widzi nawiasy jako operację i pomija je.Mniejszy język arkusza stylów: zapobiega pominięciu nawiasów w skompilowanym CSS

Original CSS:

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

Mniej mixin pisałem:

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

I skompilowany CSS że wyniki:

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

Odpowiedz

5

Możesz po prostu zachować ją jako jedną wartość i przekazać wszystko, czego potrzebujesz, gdy ją wywołasz.

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

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

kompiluje do

.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

to działa. Nadal staram się owijać głowę argumentami i resztą mniej. Nie jestem programistą, więc sprawia, że ​​czuję się głupio. dzięki – Alan

+0

Używanie zmiennej '@ arguments' jest po prostu prostym sposobem przekazania wszystkich argumentów z mixin. W moim przykładzie nie jest to konieczne, ponieważ jest tylko jeden, można po prostu wywołać zmienną '@ value'. – ferne97

4

Zmień wstawek do czegoś takiego (klucz buduje go na łańcuch, a następnie używając wartości zbiegów):

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