2013-04-30 4 views
6

Ich verwende {less} und stieß auf ein Problem mit Klammern. Ich habe ein Mixin für eine CSS3 Transform Eigenschaft geschrieben. Ich kann nicht herausfinden, wie eine Klammer im kompilierten CSS zu haben ist. Less sieht die Klammern als eine Operation und lässt sie weg.Weniger Style-Sheet-Sprache: verhindern Klammern im kompilierten CSS weggelassen werden

Original-CSS:

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

Weniger mixin schrieb ich:

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

Und die CSS zusammengestellt, die Ergebnisse:

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

Antwort

5

Sie könnten es einfach als einen Wert behalten und alles weitergeben, was Sie brauchen, wenn Sie es anrufen.

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

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

kompiliert

.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

das funktioniert. Ich versuche immer noch, Argumente und den Rest von weniger zu verstehen. Ich bin kein Programmierer, deshalb habe ich mich dumm gefühlt. Danke – Alan

+0

Die '@ arguments' Variable ist nur ein einfacher Weg um alle Argumente aus dem Mixin zu übernehmen. In meinem Beispiel ist es nicht wirklich notwendig, da es nur einen gibt, Sie könnten einfach auch die Variable '@ value' aufrufen. – ferne97

4

ändern mixin so zu etwas (der Schlüssel baut es in eine Zeichenfolge auf und verwendet dann einen Escape-Wert):

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