जब पैरामीटर को खाली के रूप में भेजा जाता है तो मैं आउटपुट में '' कैसे बच सकता हूं? - सीएसएस, कम

मैंने कम कार्यों का एक सेट लिखा था:

.b(@a) when (iscolor(@a))    { border:1px solid @a;}
.b(@a) when (ispixel(@a))    { border: @a;}
.b(@a; @b; @c)    { border: @a @b @c;}

इस तरह के समारोह को कॉल करते समय

.b(none; ""; "");

मुझे यह आउटपुट मिलता है:

border:none "" "";

मैं खोज रहा हूँ:

border:none;

अगर मैं उपयोग करता हूँ

.b(none; ; );

मुझे यह त्रुटि मिलती है:

अपेक्षित ")" मिला ";"

मैं अधिक कार्यों का उपयोग नहीं करना चाहता हूं।

मैं संकलन करने के लिए क्रंच का उपयोग कर रहा हूँ।

क्या कोई मदद कर सकता है?

उत्तर:

जवाब के लिए 2 № 1

वहां "कई तरीके हैं:

.b1(...)  {border: @arguments} // you can use variadic args
.b2(@values) {border: @values} // you can use "space delimited" values as a single arg

#usage {
.b1(1px, solid, white);
.b1(2px);
.b2(3px dotted black);
.b2(4px whatever);
}

आउटपुट:

#usage {
border: 1px solid #ffffff;
border: 2px;
border: 3px dotted #000000;
border: 4px whatever;
}

अनुलेख और "रिक्त" तर्क (जैसे आपने आरंभ में कोशिश की थी) भी काम करेंगे - आपको केवल बचने वाले मूल्यों की आवश्यकता है:

.b(7px, ~"", ~"");

संबंधित सवाल
सबसे लोकप्रिय