2010-01-25 12 views
16

का उपयोग करते समय मुझे वास्तव में LESS की विचार और अवधारणा पसंद है। फिर भी मैंने एक बग पर ठोकर खाई, जिसे मैंने कुछ समय पहले लेखक को बताया था लेकिन अभी तक कोई प्रतिक्रिया नहीं मिली है। शायद यह सिर्फ मुझे कुछ गलत कर रहा है।सीएसएस-रिडंडेंसी कम और उसके @import

मेरे application.less -File है कि इस के समान दिखता है:

@import "reset"; 
@import "config"; 
@import "header"; 
@import "forms"; 
[…] 

मुझे पसंद है कि यह मेरी फ़ाइलों को विभाजित करने के लिए अपने सीएसएस-घोषणाओं की एक बेहतर सिंहावलोकन हासिल करने के लिए @import नियम का उपयोग करना संभव है। फिर भी प्रत्येक आयातित फ़ाइल को config.less-file फिर से को फिर से आयात करने की आवश्यकता है ताकि मैं वहां परिभाषित मिश्रित और चर के उपयोग को सक्षम कर सकूं।

मुझे यकीन है कि आप पहले से ही जानते हैं कि मैं किस प्रकार की अनावश्यकता पर गाड़ी चला रहा हूं: हर बार config.less आयात किया जाता है, इसका "आउटपुट" application.css का हिस्सा बन जाता है।

मेरी कॉन्फ़िगरेशन फ़ाइल में कोड की लगभग 200 पंक्तियां हैं। चूंकि मैंने अपने सीएसएस को लगभग 5 फाइलों में विभाजित किया है (मेरे नियंत्रक नामों के आधार पर) जिन्हें कॉन्फ़िगर को दोबारा आयात करने की आवश्यकता है, मैं उत्पन्न होने वाली सीएसएस-कोड की लगभग 1000 लाइनें समाप्त करता हूं जो 100% अनावश्यक हैं।

केवल समाधान जो मैं साथ आ सकता हूं वह मेरी फाइलों को विभाजित नहीं करना है, जो मैं वास्तव में टालना चाहता हूं।

उत्तर

12

हालांकि आदर्श नहीं है, इसके लिए व्यावहारिक कारण यह है कि आपके द्वारा सैद्धांतिक रूप से आयात की जाने वाली फ़ाइलों को किसी भी सीएसएस को रखने की आवश्यकता नहीं है।

lib.less: आमतौर पर, आप चर और गतिशील mixins, जो अपने सीएसएस उत्पादन के लिए योगदान नहीं होता

#colors { 
    @blue: #0011ff; 
    @red: #ee2222; 
} 
.button (@width: 10px) {...} 

main.less:

@import "lib"; 

a { color: #colors[@blue]; } 

उत्पादन, मुख्य। सीएसएस:

a { color: #0011ff; } 

#colors {} and .button इस मामले में आउटपुट नहीं होगा।

+2

क्या आपने आउटपुट के बिना फ़ाइल आयात करने के लिए @ load/@ की आवश्यकता को लागू करने के बारे में सोचा है। वह अच्छा होगा। लेकिन मैं अपने संकेतों को अपने संकेतों के अनुसार समायोजित करने की कोशिश करूंगा। –

+0

और मैंने अभी देखा है कि आप गतिशील मिश्रणों के अंदर घोंसले का उपयोग नहीं कर सकते हैं। तो यह वास्तव में दुर्भाग्य से मेरे लिए काम नहीं करता है। –

+2

हाँ, ईमानदार होने के लिए, ये वे चीजें हैं जिन्हें मैं अंततः प्राप्त करना चाहता हूं, लेकिन अभी लागू करने का समय नहीं मिला है। – cloudhead

0

शायद आप उन्हें अपने विकास पर्यावरण में विभाजित कर सकते हैं और फिर अपने लाइव वेब सर्वर पर तैनात करते समय, सभी अतिरिक्त कोड की आवश्यकता नहीं होने पर उन्हें एक साथ विलय कर सकते हैं?

+0

का समर्थन करता है लेकिन फिर सवाल यह है कि स्वचालित रूप से उन्हें एक करना है। –

0

यदि आप . के बजाय $ का उपयोग करके घोषित और मिश्रित हैं तो आप अपनी कम कॉन्फ़िगरेशन फ़ाइल में गतिशील मिश्रण का उपयोग कर सकते हैं।

config.less में:

$mixin 
{ 
    a { color: @light; } 
    h2 { //etc. 
} 

header.less में:

@import "config"; 
.header 
{ 
    $mixin; 
} 

Source। मैंने यह भी कोशिश की है और यह काम करता है।

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