2012-09-20 9 views
25

मैं एक चर बनाने की कोशिश कर रहा हूं जो कुछ भी नहीं है। मैं निम्नलिखित की कोशिश की है ..SASS वैरिएबल को बराबर कुछ भी कैसे सेट करें?

$false:null; 

-और-

$false:" "; 

क्या मैं इस के साथ इसका इस्तेमाल करने की कोशिश कर रहा हूँ ...

@mixin myMixin($myVariable:"", $myOtherVariable){ 
    $false:null; 
    @if $myVariable == $false { 
     //do something 
    } 
    @if $myVariable != "" { 
     //do something else 
    } 
} 

@include myMixin("", $myOtherVariable); 

मैं के लिए दो चर का उपयोग कर रहा यह उदाहरण है, लेकिन मैं दो से अधिक होने की योजना बना रहा हूं।

असल में जो मैं करना चाहता हूं उसके पास खाली उद्धरणों का उपयोग किये बिना एक चर को बाहर करने का विकल्प है। और $false: ""; के साथ समस्या यह है कि यह अभी भी खाली उद्धरणों की अपेक्षा करता है। तो मैं सोच रहा हूं कि एसएएसएस में "शून्य/या कुछ भी" नामित करने के लिए कुछ बनाया गया है या नहीं। मैंने सोचा कि यह शून्य हो सकता है। लेकिन ऐसा लगता है कि यह मामला प्रतीत नहीं होता ..

+1

'Null' वास्तव में कुछ भी नहीं * * मूल्य है, लेकिन यह केवल 3.2+ में मौजूद है: http: // chriseppstein .github.com/ब्लॉग/2012/08/23/sass-3-2-is-release/ – cimmanon

+0

@cimmanon जानकारी के लिए धन्यवाद .. जब मुझे मौका मिलता है तो मैं अपने संस्करण को दोबारा जांच दूंगा। –

उत्तर

40

null या false काम करेंगे (null सास के नवीनतम संस्करण में नया है)। दोनों आपके उदाहरण के लिए काम करेंगे। null का एकमात्र लाभ यह है कि यदि आप किसी संपत्ति के साथ इसका उपयोग करते हैं तो यह गायब हो जाता है।

@mixin myMixin($myVariable: false, $myOtherVariable: false){ 
    @if not $myVariable { 
    //do something 
    } @else { 
    //do something else 
    } 
} 

@include myMixin(false, $myOtherVariable); 
+0

स्पष्टीकरण के लिए धन्यवाद ... कहने की जरूरत नहीं है कि आपने नल के उपयोग के बारे में मेरे सवालों का जवाब दिया है और ऐसा लगता है कि यह बिना किसी मुद्दे के काम करता है। मैं उम्मीद कर रहा था कि अगर मुझे इसकी आवश्यकता नहीं है तो मैं @include() में एक चर पारित किए बिना प्राप्त कर सकता हूं। लेकिन जैसा कि मैंने maxbeaty के पोस्ट पर उल्लेख किया है ऐसा लगता है कि यह एक विकल्प नहीं है। वैसे भी, नल बेहतर काम करता है क्योंकि मैं नील के साथ मुद्दों में भाग रहा था .. तो फिर आपकी मदद के लिए धन्यवाद। –

+1

फिर गलत। :) यह एक विकल्प है। उपर्युक्त कोड के साथ, आपने '$ myVariable' तर्क के लिए डिफ़ॉल्ट मान के रूप में 'false' सेट किया है। जब तक आपके सभी तर्कों के लिए डिफ़ॉल्ट सेट हो, तब तक इसमें शामिल होने के साथ कुछ भी पास करने की आवश्यकता नहीं है। बस '@ myMixin शामिल करें;'। डिफ़ॉल्ट के बिना केवल तर्क ही शामिल लाइन के साथ पारित किया जाना होगा। (आवश्यक तर्कों को तर्क सूची में वैकल्पिक लोगों के सामने भी आना होगा) –

+0

ठीक है जो समझ में आता है।मैं आवश्यक के बाद वैकल्पिक के बारे में जानता था लेकिन मुझे नहीं पता था कि आप इस तरह के डिफ़ॉल्ट तर्क सेट कर सकते हैं। यह अब आपके मिश्रण को देखकर अधिक समझ में आता है। –

-1

सास रूबी में लिखा गया है जो null के बजाय nil का उपयोग करता है।

@mixin myMixin($myVariable, $myOtherVariable){ 
    $false: nil; 
    @if $myVariable == $false{ 
    color: inherit; 
    } @else { 
    color: $myVariable; 
    } 
} 

p { 
    @include myMixin(nil, $myOtherVariable); 
} 

.red { 
    @include myMixin(red, $myOtherVariable); 
} 

Example on jsFiddle

+0

मुझे यकीन नहीं है कि यह मामला यहां है। मुझे लगता है कि इससे कोई फर्क नहीं पड़ता कि मैंने $ झूठा सेट किया है .. उदाहरण के लिए यदि मैंने "शून्य" के बजाय "blah" शब्द का उपयोग किया है, तो यह अभी भी एक ही परिणाम प्रस्तुत करेगा। शायद मैं यहाँ कुछ याद कर रहा हूँ। –

+0

सुनिश्चित करें कि आप 'nil' उद्धृत नहीं करते हैं क्योंकि यह इसे एक स्ट्रिंग बना देगा। ('शून्य 'बनाम'" शून्य "' – maxbeatty

+5

'शून्य 'सही सास है, और दस्तावेज में' शून्य' का कोई उल्लेख नहीं है। देखें: http://sass-lang.com/docs/yardoc/Sass/Script/Null.html –

0

चर सेट करने के लिए 'असत्य'

$false: false;

+0

झूठ कुछ भी नहीं के करीब भी नहीं है। साथ ही, मौजूदा उत्तर पहले से ही गलत परिदृश्य को शामिल करता है। – cimmanon

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