मैं निम्नलिखित निर्माण के साथ एक .less स्टाइलशीट मिल गया है:.लेस परिवर्तनीय इंटरपोलेशन के लिए सही वाक्यविन्यास क्या है?
@width:600;
.some-style
{
width:@{width}px;
}
और इस निम्न त्रुटि देता है: क्योंकि मैं से चर भेद करने के लिए की जरूरत है
Expected '}' on line x in file '..\styles.less'
मैं उन ब्रेसिज़ की जरूरत है, निम्नलिखित px
प्रत्यय (@widthpx
काम नहीं करता है क्योंकि तब यह widthpx
नामक एक चर के लिए दिखता है)। और मैं एक जगह का उपयोग नहीं कर सकता क्योंकि 600 px
मान्य सीएसएस नहीं है। घुंघराले ब्रेसिज़ के बजाय कोष्ठक का उपयोग करना या तो काम नहीं करता है।
मैं यहाँ क्या गलत कर रहा हूं?
अद्यतन: मैं पैकेज प्रबंधक से .less का नवीनतम संस्करण स्थापित है, और अब यह एक छोटे बेहतर काम करता है, लेकिन एक मिथ्या दोष के साथ:
width:@(width)px; <--note the parentheses
अब संकलित है, लेकिन इस सीएसएस का उत्सर्जन करता है:
600 px <--note the space, which is invalid CSS, thus useless.
हल: Scotts मुझे समाधान की ओर इशारा किया। अपने दो तरीकों से जोड़ने में, ऐसा लगता है कि कंपाइलर स्ट्रिंग पर गणित कर सकता है। तो यह काम करता है:
@width:600px;
.some-style
{
width:@width/2; <--correctly emits "300px"
}
कारण यह है कि मैं इकाइयों के साथ गणित कर सकता हूं। उदाहरण के लिए, मैं चौड़ाई करना चाहता हूं: @ {चौड़ाई/2} पीएक्स। लेकिन मैंने अभी जांच की है और ऐसा लगता है कि संकलक वास्तव में इसे समझता है। अगर मैं अपनी मूल परिभाषा को @ विड्थ: 600 पीएक्स में बदलता हूं, और फिर शैली को चौड़ाई के लिए सेट करता हूं: @ विड्थ/2, कंपाइलर 300px को सही ढंग से उत्सर्जित करता है। मेरे लिए यह प्रतिद्वंद्वी है कि गणित संख्या 600 की बजाय स्ट्रिंग 600px पर किया जाता है, लेकिन यह मेरी समस्या हल करता है। क्या आप इस समाधान के साथ अपना उत्तर अपडेट कर सकते हैं (या एक नया जोड़ सकते हैं), और मैं इसे स्वीकार करूंगा?उपर्युक्त समाधान वास्तव में समस्या को हल नहीं करता है। –
@ जोशुआ फ्रैंक: शायद आपने टिप्पणी पोस्ट करने से पहले मैंने आपको भी हराया था। मैंने जाहिर तौर पर इकाइयों को 'चौड़ाई' पर नहीं डालने के आपके कारण को गलत समझा। मैं यह समझने में मदद के लिए उत्तर अपडेट करूंगा कि यह _not_ "काउंटर-अंतर्ज्ञानी" क्यों है जैसा आप मानते हैं। – ScottS