2012-10-17 19 views
40

मैं इस समय एक परियोजना पर ट्विटर बूटस्ट्रैप का उपयोग कर रहा हूं, जिसमें कम फाइलें शामिल हैं और कुछ अतिरिक्त LESS कोड के साथ संकलित किया गया है जो हमने लिखा है।क्या कम चर को ओवरराइड करना बुरा व्यवहार है?

नवीनतम रिलीज़ का मतलब है कि हमें कुछ बूटस्ट्रैप कम चरों को ओवरराइड करने की आवश्यकता है। यहां एक विकल्प बूटस्ट्रैप की संशोधित प्रति को बनाए रखना था जिसे हम प्रत्येक रिलीज पर पैच करते थे।

लेकिन मुझे लगता है कि @import कम फ़ाइल में को फिर से घोषित करके एक चर को ओवरराइड करना संभव है, आयात विवरण के बाद।

उदा .:

@import "twitter-bootstrap/bootstrap.less"; 
// Restore base font size to pre 2.1.1 defaults 
@baseFontSize:   13px; 
// Add some custom LESS code here 

यह बुरा व्यवहार है? क्या यह कम संकलक काम करता है, या इसका एक इच्छित हिस्सा जिस तरह से एक आर्टिफैक्ट है? मुझे इस पर अधिक जानकारी नहीं मिली, हालांकि मुझे निम्नलिखित दो संदर्भ मिल गए:

कम कंपाइलर में एक बग के कारण, आप इसके बाद इसे बदलकर एक चर के "निरंतर" मान को ओवरराइड कर सकते हैं शुरू में घोषित किया गया है।

http://rubysource.com/how-to-customize-twitter-bootstrap%E2%80%99s-design-in-a-rails-app

और

कॉलम कस्टमाइज़ और इन तीन चर अधिभावी द्वारा गटर (grid.less आयात के बाद घोषित किया गया है)।

http://semantic.gs/

कम साइट अपने आप में कहा गया है कि चर 'स्थिरांक' हैं:

http://lesscss.org/

ध्यान दें कि कम समय में चर वास्तव में उस में हैं 'स्थिरांक' वे केवल किया जा सकता है एक बार परिभाषित किया गया।

लेकिन तब मैं इस दृष्टिकोण का उपयोग अन्य साइटों को देखने के .. यह निश्चित रूप से एक विक्रेता शाखा को बनाए रखने की तुलना में आसान है और less.js. के साथ ठीक से काम करने लगता है

किसी भी विचार की सराहना करेंगे कि यह करना एक बुरी चीज है या नहीं!

+1

कुछ टिकट हैं: https://github.com/cloudhead/less.js/issues/297 और https://github.com/cloudhead/less.js/issues/905 –

+0

धन्यवाद, वहां देखना चाहिए था - उपयोगी। हालांकि मेरा प्रश्न अभी भी खड़ा है क्योंकि उन मुद्दों में से कोई भी संकल्प नहीं था। – sync

उत्तर

43

ठीक है! उपर्युक्त मुद्दों में से एक ने इच्छित व्यवहार की चर्चा की, और यह पता चला कि कम चर को ओवरराइड करना ठीक है।

आपकी घोषणाएं सीएसएस में एक ही दायरे में एक-दूसरे को ओवरराइट कर देगी; कम के लिए भी यही सच है।

https://github.com/cloudhead/less.js/issues/297

तरह सीएसएस, एक दायरे के भीतर अधिभावी कम उपयोग करने के लिए एक इच्छित तरीका है।

6

यह ठीक है!

मैं आमतौर पर "घटक" और चर के साथ चर के साथ एक कम फ़ाइल बनाते हैं। फिर मैं उसके बाद एक ही चर के साथ एक फ़ाइल आयात करता हूं लेकिन "ग्राहकों" मानों को डिफ़ॉल्ट रूप से ओवरराइट करता हूं। इस तरह से मुझे प्रत्येक ग्राहक के लिए एक नया डिज़ाइन बनाने के लिए केवल कुछ मानों को बदलना है।

यह ठीक है और बहुत उपयोगी है।

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