2013-03-08 9 views
13

Ich schreibe ein @ Mixin mit einigen Mathe darin, die die prozentuale Breite eines Elements berechnet, aber da es sehr nützlich ist, möchte ich die gleiche Funktion für andere Eigenschaften, wie Ränder und Polsterungen.Verwenden von Variablen für CSS-Eigenschaften in Sass

Gibt es eine Möglichkeit, den Eigenschaftsnamen als Argument an ein Mixin zu übergeben?

@mixin w_fluid($property_name, $w_element,$w_parent:16) { 
    $property_name: percentage(($w_element/$w_parent)); 
} 

Antwort

27

Sie müssen interpolation verwenden (zB. #{$var}) auf Variable, um für Sass es als CSS-Eigenschaft zu behandeln. Ohne es tun Sie nur variable Zuweisung.

@mixin w_fluid($property_name, $w_element, $w_parent:16) { 
    #{$property_name}: percentage(($w_element/$w_parent)); 
} 
+1

Dank rcorbellini, war ich Referenzierung der Eigenschaftsnamen in dem Deklarationsblock in der falschen Art und Weise nutzen können. Gut ist: # {$ property_name}. Grazie! –

+0

cool: D Wenn die Antwort hier Ihnen geholfen hat, möchten Sie es vielleicht als "akzeptiert" markieren. – rcorbellini

5

Neben der @rcorbellini Antwort

Sie Zeichenfolge und variable zusammen

@mixin margin($direction) { // element spacing 

    margin-#{$direction}: 10px; 

}