2010-02-12 10 views
5

तो चलो कहते हैं कि मैं 'foo.css' में निम्नलिखित हैं करते हैं:क्या मैं एक और सीएसएस परिभाषा में एक सीएसएस परिभाषा शामिल कर सकता हूं?

.border { border : solid 1px; } 
#foo { color : #123; } 
#bar { color : #a00; } 

अब मान लीजिए कि मैं दो divs मैं के लिए सीमाओं चाहते हैं कि चलो, तो मैं कार्य करें:

<div id="foo" class="border">Foo</div> 
<div id="bar" class="border">Bar</div> 

यह ठीक काम करता है है, लेकिन मुझे लगता है कि जब मेरे सीएसएस फ़ाइल में #foo और #bar को परिभाषित करने, मैं नहीं बल्कि उन्हें .border की विशेषताओं की तुलना में दे div class है, तो जैसे देना होगा:

.border { border : solid 1px; } 
#foo { 
    <incantation to inherit from .border> 
    color : #123; 
} 
#bar { 
    <incantation to inherit from .border> 
    color : #a00; 
} 

और फिर मेरी एचटीएमएल wo uld बस हो:

<div id="foo">Foo</div> 
<div id="bar">Bar</div> 

कोई भी जानता है कि जादू का जादू क्या है?

उत्तर

1

आपको mixins with Sass में रुचि हो सकती है। सास आपको इस तरह की चाल का उपयोग करके, सीएसएस स्टाइल शीट्स को एक अधिक कुशल तरीके से लिखने देता है। मिक्सिन्स आपको विशेषताओं के समूह को परिभाषित करने देता है (कहें, सीमाओं के साथ करने के लिए), और फिर कुछ सीएसएस वर्गों के भीतर उन विशेषताओं को शामिल करें।

+0

हम्म, दिलचस्प। मैं पहले से ही हैमल का उपयोग कर रहा हूं इसलिए मेरे सीएसएस सामान के लिए सैस का उपयोग करना एक प्राकृतिक अगला कदम होगा और इस विशेष सीएसएस की कमी को हल करेगा। आपकी प्रतिक्रिया के लिए आप में से प्रत्येक को धन्यवाद! – ynkr

7

यह सीएसएस द्वारा समर्थित नहीं है। सबसे अच्छा आप ऐसा कर सकते हैं जैसे:

#foo, #bar, .border { border : solid 1px; } 
#foo { color : #123; } 
#bar { color : #a00; } 
+2

ऑफ-विषय, मैं जोड़ता हूं कि 'सीमा' शॉर्टेंड का उपयोग करते समय, मानों का सही क्रम 'सीमा-चौड़ाई', फिर 'सीमा-शैली', फिर 'सीमा-रंग' है। इस प्रकार, 'सीमा: ठोस 1 पीएक्स' अमान्य सीएसएस है, यह' सीमा: 1 पीएक्स ठोस 'होना चाहिए। अभी, ब्राउज़र इस तरह की त्रुटियों के बारे में बहुत क्षमा कर रहे हैं, लेकिन यह अनिश्चित काल तक भरोसा करने के लिए कुछ नहीं है। –

+0

अच्छा बिंदु, मैंने बस वास्तविक नियमों को संशोधित किए बिना ओपी की शैलियों की प्रतिलिपि बनाई। – wsanville

+0

मैं वास्तव में # foo, # bar, .border {सीमा: ठोस 1px} चीज़ नहीं कर सकता क्योंकि वास्तविक परिभाषा मुझे एक jquery-ui css फ़ाइल में है, इसलिए मैं गर्म लिंक कर रहा हूं, इसलिए मुझे समाधान की आवश्यकता है ऊपर रेखांकित किया हुआ। उत्तर के लिए धन्यवाद, यह जानना उपयोगी है कि इसे नहीं किया जा सकता है। इसके अलावा, मुझे सीमा आदेश की बात के बारे में पता नहीं था। धन्यवाद। – ynkr

0

जैसा कि वसनविले ने कहा था, आप कक्षा का उपयोग नहीं कर सकते हैं। लेकिन सामान्य सीएसएस विरासत काम करता है - अगर आपकी एचटीएमएल

<div class="border"> 
    <div id="foo"> 
     hello 
    </div> 
    <div id="bar"> 
     world 
    </div> 
</div> 

था आप कह सकते हैं

.border {border: 1px solid #f00;} 
#foo {border:inherit;} 

कुछ मामलों में कौन सा काफी अच्छा

0

हो सकता है आप पुश करने के लिए देख रहे हैं का कहना है कि अपने सीएसएस आगे की पोस्ट में उल्लिखित कुछ चालों का उपयोग करने के बजाय, आपको सीएसएस कंपाइलर्स में देखना चाहिए। वे सीएसएस जैसे कोड को लिखते हैं, आमतौर पर सीएसएस में जोड़े गए कुछ चाल के साथ सीएसएस, और उन्हें वेब के लिए सामान्य सीएसएस में बदल देते हैं।

David Ziegler शांत विशेषताओं सीएसएस compilers में से कुछ के बारे में लिखा प्रदान करते हैं:

  • चर - अच्छा प्रोग्रामर हार्डकोड करने पसंद नहीं है। कई मामलों में आप अच्छे उत्तराधिकारी का उपयोग कर सीएसएस में इससे बच सकते हैं, लेकिन कभी-कभी यह अपरिहार्य है। चर के साथ, अपनी रंग योजना को बदलने का मतलब है 13 गुणों के बजाय एक चर को अद्यतन करना।

  • गणित - यह चर के साथ हाथ में चला जाता है। कहें कि आपका बायां कॉलम 100px है, आपका दायां कॉलम 500px है, और आपका रैपर div 600px है। खैर, शायद आप इसे 960px में बदलने का फैसला करें। यदि आपके कॉलम की चौड़ाई स्वचालित रूप से समायोजित होती है तो क्या यह शानदार नहीं होगा? इसका जवाब है हाँ।

  • नेस्टेड शैलियाँ - यह शायद सबसे महत्वपूर्ण है। सीएसएस फ्लैट है, जिसका मतलब जटिल साइटें सीएसएस के साथ खत्म होती हैं जो कि दर्द से गुजरती है।

आप अपने blog post on the subject में के बारे में लोकप्रिय compilers पढ़ सकते हैं, या कुछ खोज करते हैं और एक है कि आप के लिए सबसे अच्छा काम करता।

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