2009-06-03 16 views
56

मैं सोच रहा हूं कि अभिभावक शैली को अनदेखा कैसे करें और डिफ़ॉल्ट शैली का उपयोग करें (कोई नहीं)। मैं अपना विशिष्ट मामला एक उदाहरण के रूप में दिखाऊंगा लेकिन मुझे पूरा यकीन है कि यह एक सामान्य सवाल है।अभिभावक सीएसएस शैली को अनदेखा कैसे करें

<style> 
#elementId select { 
    height:1em; 
} 
</style> 

<div id="elementId"> 
    <select name="funTimes" style="" size="5"> 
     <option value="test1">fish</option> 
     <option value="test2">eat</option> 
     <option value="test3">cows</option> 
    </select> 
</div> 

तरीके मैं इस समस्या को हल करने के लिए नहीं करना चाहती:

  • मैं स्टाइलशीट जहां "का चयन करें #elementId" पर सेट है संपादित नहीं कर सकते, मेरे मॉड्यूल का उपयोग कर सकते है कि नहीं होगा।
  • पसंदीदा विशेषता शैली का उपयोग करके ऊंचाई शैली को ओवरराइड नहीं करते हैं।

उदाहरण के लिए फायरबग का उपयोग करके मैं मूल शैली को बंद कर सकता हूं और सब ठीक है, यह वह प्रभाव है जिसके लिए मैं जा रहा हूं।

एक बार शैली सेट हो जाने पर, इसे अक्षम किया जा सकता है या इसे ओवरराइड किया जाना चाहिए?

उत्तर

25

इसे ओवरराइड किया जाना चाहिए। आप इस्तेमाल कर सकते हैं:

<!-- Add a class name to override --> 
<select name="funTimes" class="funTimes" size="5"> 

#elementId select.funTimes { 
    /* Override styles here */ 
} 

आप एक विशेषता का भी उपयोग कर सकता है, लेकिन है कि क्योंकि लिगेसी ब्राउज़र (IE6 आदि पढ़ने के लिए), यह एक वर्ग के नाम

3

आप एक और परिभाषा बना सकते हैं जोड़ने के लिए बेहतर है द्वारा समर्थित नहीं है आपके सीएसएस स्टाइलशीट में कम जो मूल रूप से प्रारंभिक नियम को उलट देता है। आप नियमों को "महत्वपूर्ण" जोड़ सकते हैं ताकि यह सुनिश्चित किया जा सके कि यह चिपक जाता है।

0

यह भावना इस जैसे होगा सीएसएस (उदाहरण के लिए, अपने पृष्ठ के शीर्ष अनुभाग में, जो जुड़ा हुआ शैली पत्रक ओवरराइड होगा) एक तरह से बस एक अतिरिक्त शैली जोड़ने के लिए करने के लिए के लिए:

<head> 
<style> 
#elementId select { 
    /* turn all styles off (no way to do this) */ 
} 
</style> 
</head> 

और सभी पहले लागू शैलियों को बंद करें, लेकिन ऐसा करने का कोई तरीका नहीं है। आपको ऊंचाई विशेषता को ओवरराइड करना होगा और इसे अपने पृष्ठों के मुख्य अनुभाग में एक नए मान पर सेट करना होगा।

<head> 
<style> 
#elementId select { 
    height:1.5em; 
} 
</style> 
</head> 
54

आप इस तरह यह अधिभावी द्वारा इसे बंद कर सकते हैं:

ऊंचाई: ऑटो महत्वपूर्ण;

+2

सरल, स्वयं द्वारा पर्यवेक्षित लेकिन बहुत प्रभावी। धन्यवाद +1। – Ben

+2

मैं आपके उत्पादन मार्कअप में '! महत्वपूर्ण' का उपयोग करने के खिलाफ सलाह दूंगा - इसे वास्तव में केवल डीबगिंग के दौरान उपयोग किया जाना चाहिए। – Amicable

+0

@ अचूक आप समझ सकते हैं कि यह सलाह क्यों नहीं दी जाती है? –

1

मुझे जूमला वेबसाइट पर काम करते समय भी इसी तरह की स्थिति थी।

प्रभावित होने के लिए मॉड्यूल में कक्षा का नाम जोड़ा गया। आपके मामले में:

<select name="funTimes" class="classname"> 

फिर सीएसएस में निम्नलिखित एकल पंक्ति परिवर्तन किया। जोड़ा गया

#elementId div.classname {style to be applied !important;} 

अच्छी तरह से काम किया!

1

अगर मैं सही ढंग से समझ में आ qeustion: आप इस width:auto तरह सीएसएस में "ऑटो" का उपयोग कर सकते हैं और फिर इसे डिफ़ॉल्ट सेटिंग्स

1

करने के लिए वापस जाना होगा आप इस

ऊंचाई का उपयोग करना चाहिए: ऑटो!जरूरी;

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