दिलचस्प पोस्ट
हम नए फेसबुक हैशटैग कार्यान्वयन के साथ हैशटैग को कैसे ट्रैक कर सकते हैं WPF प्रवेश बिंदु की जगह डिवाइस (UI) अभिविन्यास प्रोग्राम को कैसे निर्धारित किया जाए? प्रकार के मामले पर स्विच करें # जर्सी के JSON / JAXB को क्रमबद्ध करने के लिए कैसे उपयोग करें? सी में 0 को सरणी कैसे प्रारंभ करें? एएनएसआई (सी 8 9/90) सी में एक बाइट का प्रतिनिधित्व करने के लिए उपयोग करने के लिए टाइप करें? कैसे प्रत्येक के लिए हैशप? मैं node.js http.Client के साथ एक HTTP प्रॉक्सी का उपयोग कैसे कर सकता हूं? फ़ाइल _get_contents क्यों काम नहीं करता है? विजुअल स्टूडियो 2012 प्रोजेक्ट से विजुअल स्टूडियो 2008 तक डाउनग्रेड कैसे करें सर्वश्रेष्ठ शब्द लपेटो एल्गोरिदम? आर में डीबगिंग के लिए सामान्य सुझाव जावास्क्रिप्ट का उपयोग करके एक्सल के लिए एचटीएमएल टेबल को कैसे निर्यात करें सुरक्षा कारणों से बचने के लिए escapeshellarg () को अक्षम कर दिया गया है

मूल तत्वों को विरासत में लाने से बाल तत्व को रोकने के लिए CSS

संभव डुप्लिकेट:
मैं सीएसएस विरासत को कैसे रोकूं?

क्या किसी तत्व की सीएसएस प्रॉपर्टी को घोषित करने का कोई तरीका है कि इससे किसी भी बच्चे को प्रभावित नहीं किया जा सकता है या क्या किसी तत्व के सीएसएस को घोषित करने का एक तरीका है, जो कि केवल निर्दिष्ट शैली को लागू किया गया है और अपने माता-पिता के लिए घोषित शैली में से कोई भी वारिस नहीं है ?

एक त्वरित उदाहरण

HTML:

<body> <div id='container'> <form> <div class='sub'> Content of the paragraph <div class='content'>Content of the span</div> </div> </form> </div> </body> 

सीएसएस:

 form div { font-size: 12px; font-weight: bold; } div.content { /* Can anything go here? */ } 

सामान्य परिस्थितियों में एक उम्मीद करता है कि पाठ ब्लॉक "पैराग्राफ की सामग्री" और "अवधि की सामग्री" दोनों 12px और बोल्ड हो जाएगी।

"Div.content" ब्लॉक में ऊपर सीएसएस में शामिल करने के लिए कोई संपत्ति है जो इसे "# कंटेनर फॉर्म डिवी" ब्लॉक में घोषित करने के लिए शैली को सीमित करने के लिए "पैराग्राफ की सामग्री" और अतिरिक्त " अवधि की सामग्री "किसी भी अन्य बच्चों div सहित?

अगर आप सोच रहे हैं कि क्यों, ठीक है, मैंने एक विशेष सीएसएस फ़ाइल बनाई है जो मेरे प्रोजेक्ट पर सभी विशेष रूप से एक विशेष महसूस करती है और प्रपत्र के तहत डिवाईस सभी महसूस करते हैं। कोई बात नहीं। लेकिन फॉर्म के अंदर मैं फ्लेक्सीग्रिड का इस्तेमाल करना चाहता हूं लेकिन फ्लेक्सीग्रिड शैली को विरासत में ले जाता है और यह सिर्फ बेकार लग रहा है। अगर मैं फॉर्म के बाहर flexigrid का उपयोग करता हूं और जैसे कि यह फॉर्म सीएसएस को प्राप्त नहीं करेगा, तो यह बहुत अच्छा लग रहा है अन्यथा यह सिर्फ भयानक लग रहा है।

वेब के समाधान से एकत्रित समाधान "मूल तत्वों को विरासत में लाने से बाल तत्व को रोकने के लिए CSS"

दुर्भाग्य से, आप यहां भाग्य से बाहर हैं।

माता-पिता से अपने बच्चों के लिए एक निश्चित मूल्य की प्रतिलिपि करने के लिए inherit होता है, लेकिन कोई अन्य संपत्ति नहीं है (जो किसी अन्य चयनकर्ता को यह तय करने के लिए शामिल करता है कि किस शैली को वापस करना है)।

आपको मैन्युअल रूप से शैली परिवर्तन वापस करना होगा:

 div { color: green; } form div { color: red; } form div div.content { color: green; } 

यदि आपके पास मार्कअप तक पहुंच है, तो आप कई वर्गों को शैली में ठीक से जोड़ सकते हैं जो आपको चाहिए:

 form div.sub { color: red; } form div div.content { /* remains green */ } 

संपादित करें: सीएसएस कार्य समूह कुछ पर निर्भर है :

 div.content { all: revert; } 

कोई विचार नहीं, कब या कभी यह ब्राउज़र द्वारा लागू किया जाएगा

2 संपादित करें: मार्च 2015 तक सभी आधुनिक ब्राउज़र्स लेकिन सफ़ारी और आईई / एज ने इसे लागू किया है: https://twitter.com/LeaVerou/status/577390241763467264 (धन्यवाद, @ लीआ वेरॉ !)

3 संपादित करें: default का नाम बदलकर revert किया गया था

क्या आप खुद को स्वयं नहीं बना सकते हैं? उसके बाद, तदनुसार डिवीज़ की शैली।

 form { /* styles */ } 

आप इसे महत्वपूर्ण बनाकर हमेशा विरासत में मिली शैलियों को उल्टा कर सकते हैं:

 form { /* styles */ !important } 

सीएसएस नियम डिफ़ॉल्ट रूप से विरासत में मिला है – इसलिए "कैस्केडिंग" नाम। आप जो चाहें प्राप्त करने के लिए उपयोग करने की आवश्यकता है! महत्वपूर्ण:

 form div { font-size: 12px; font-weight: bold; } div.content { // any rule you want here, followed by !important }