2013-01-21 13 views
26

मैं इस mixin एक सरल CSS3 के रेखीय ग्रेडिएंट को संभालने के लिए है:सास mixin में एक वैकल्पिक तर्क छोड़ा जा रहा है

@mixin linear-gradient($from, $to, $dir: bottom, $dir-webkit: top, $ie-filters: false) { 
    background-color: $to; 
    background-image: -webkit-linear-gradient($dir-webkit, $from, $to); 
    background-image: linear-gradient(to $dir, $from, $to); 
    @if $ie-filters == true and $old-ie { 
     filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($from)}', endColorstr='#{ie-hex-str($to)}'); 
    } 
} 

$dir 'दिशा' के लिए कम है।

मैं $ie-filters 'सही' बनाने की जरूरत है और मैं $dir/$dir-webkit मूलभूत मूल्यों मैं अब भी उन्हें redeclare करने के लिए जो स्पष्ट रूप से बहुत शुष्क और इष्टतम नहीं है की जरूरत को बदलने की जरूरत नहीं है, इसलिए मैं क्या करना है चाहते हैं, तो इस:

@include linear-gradient(#7a7a7a, #1a1a1a, bottom, top, true);

जब मैं सिर्फ यह करना चाहते हैं:

@include linear-gradient(#7a7a7a, #1a1a1a, true);

मैं कैसे छोड़ करते तर्क मैं एक मिश्रण जब कॉलिंग करते हैं?

पुनश्च आप $dir-webkit तर्क यह वेबकिट यह अभी भी नया ढाल वाक्य रचना संभाल नहीं करता है के रूप में के लिए है के बारे में सोच रहे हैं (देखें: http://generatedcontent.org/post/37949105556/updateyourcss3 ->नई ढाल वाक्य रचना), दिशा के विपरीत होने की जरूरत है मानक वाक्यविन्यास।

+0

क्या आपने कोशिश की, शून्य से गुज़रने का प्रयास किया? – markus

+0

बस कोशिश की लेकिन यह 'शून्य' का उपयोग होने पर किसी भी मूल्य को आउटपुट नहीं करता है: '@ lineer-gradient (# f60, # c00, null, null, true) शामिल करें;' 'compiles:' background-image: -webkit -लाइनर-ग्रेडियेंट (, # एफएफ 6600, # सीसी0000); पृष्ठभूमि-छवि: रैखिक-ढाल (से, # एफएफ 6600, # सीसी0000); ' –

+0

इस http://bravedick.github.com/mooxins/ mixins को आजमाएं। नहीं, फिल्टर, बीटीडब्ल्यू। – bravedick

उत्तर

44

एस.ए.एस.एस. 3.1 से शुरू आप ऐसा करने के लिए नामित तर्क पारित कर सकते हैं:

@include linear-gradient($from: #7a7a7a, $to: #1a1a1a, $ie-filters: true); 

बाकी डिफ़ॉल्ट होगा।

+0

'$ से' और '$ से' के पास कभी भी डिफ़ॉल्ट नहीं होगा, लेकिन अगर उन्होंने ऐसा किया है तो भी यह मदद नहीं करता है जब मैं ऊपर वर्णित तर्क को छोड़ना चाहता हूं। –

+1

क्या? मैंने आपको दिखाया कि यह कैसे काम करता है, यही वह था जो आपने पूछा था। आप तीसरे और चौथे तर्क पर छोड़ना चाहते हैं और इस तरह यह किया जाता है। – markus

+4

शायद आप मेरे जवाब को समझ नहीं सकते हैं। इस प्रकार आप अपने मूल्यों के साथ मिश्रण को कॉल करते हैं। जब तक आप नामांकित तर्क पास करते हैं, तब तक आप दो अन्य पैरामीटर को छोड़ सकते हैं। – markus

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