2013-05-21 11 views
10

मैं एक mixin एक क्रॉस ब्राउज़र calc करने के लिए सेट किया है का उपयोग करता है एक calc() mixin को एक अभिव्यक्ति पारित कर सकते हैं,मैं कैसे सास चर

@mixin calc($property, $expression...) { 
    #{$property}: -moz-calc(#{$expression}); 
    #{$property}: -o-calc(#{$expression}); 
    #{$property}: -webkit-calc(#{$expression}); 
    #{$property}: calc(#{$expression}); 
} 

मैं भी एक चर है।

$line: 12px; 

मैं इसके भीतर एक चर का उपयोग करने में सक्षम होना चाहता हूं।

@include calc(width, "30% - ($line * 2)) "); 

लेकिन मुझे यकीन नहीं है कि यह इसके बारे में जाने का सबसे अच्छा तरीका है या नहीं।

+1

, ओपेरा के लिए एक उपसर्ग जोड़ने के लिए कोई कारण ही ओपेरा के बाद से 'calc()' का समर्थन नहीं करता है। जब वे आखिरकार इसका समर्थन करते हैं, तो इसका अनुमान लगाने का कोई कारण नहीं है कि इसे प्रीफ़िक्स किया जाए। – cimmanon

उत्तर

19

आप मूल्य तुम mixin को गुजर रहे हैं पर स्ट्रिंग प्रक्षेप का उपयोग करना होगा:

.foo { 
    @include calc(width, #{"30% - #{$line * 2}"}); 
} 

आउटपुट:

.foo { 
    width: -moz-calc(30% - 24px); 
    width: -o-calc(30% - 24px); 
    width: -webkit-calc(30% - 24px); 
    width: calc(30% - 24px); 
} 
+1

थोड़ा बदसूरत, लेकिन काम करता है। धन्यवाद! – Jeewes

संबंधित मुद्दे