2010-03-09 13 views
15

सीएसएस में, कैस्केडिंग और विरासत के बीच क्या अंतर है?सीएसएस में, कैस्केडिंग और विरासत के बीच क्या अंतर है?

या दोनों एक ही बात हैं?

+1

** देखें [संपत्ति मूल्यों, कैस्केडिंग और विरासत को असाइन करना] (http://www.w3.org/TR/CSS2/cascade.html#inheritance) ** – rahul

+0

यह भी देखें ** [चयनकर्ता की विशिष्टता की गणना करना] (http://www.w3.org/TR/CSS2/cascade.html#specificity)**। कैस्केड की *** विशिष्ट *** प्रकृति विरासत बनाम एक महत्वपूर्ण भिन्नता है। –

उत्तर

27

विरासत इस बात के बारे में है कि किसी तत्व से अपने बच्चों को कैसे गुण मिलता है। कुछ गुण, जैसे font-family उत्तराधिकारी। यदि आप body पर फ़ॉन्ट-फ़ैमिली सेट करते हैं, तो उस फ़ॉन्ट परिवार को body के सभी तत्वों द्वारा विरासत में प्राप्त किया जाएगा। color के लिए भी यह सच है, लेकिन background या height के लिए यह सच नहीं है जो हमेशा transparent और auto पर डिफ़ॉल्ट होगा। ज्यादातर मामलों में यह सिर्फ समझ में आता है। पृष्ठभूमि का उत्तराधिकारी क्यों होगा? वह दर्द होगा। अगर फोंट का वारिस नहीं हुआ तो क्या होगा? वह भी कैसा दिखता है?

कैस्केड एक संघर्ष होने पर प्राथमिकता के बारे में है। झरना के नियमों में शामिल हैं:

  1. बाद गुण पहले गुण
  2. अधिक विशिष्ट चयनकर्ताओं को ओवरराइड ओवरराइड कम विशिष्ट चयनकर्ताओं
  3. निर्दिष्ट गुण विरासत में मिला गुण

और इसी तरह ओवरराइड। कैस्केड किसी भी संघर्ष की स्थिति हल करता है। यह वह क्रम है जिसमें गुण लागू होते हैं।


(अद्यतन) विशिष्टताcalculation झरना में चयनकर्ता प्राथमिकता का निर्धारण किया जाता है। जब दो चयनकर्ता एक ही तत्व पर लागू होते हैं, तो उच्च विशिष्टता वाला व्यक्ति प्राथमिकता लेता है।

  1. इनलाइन शैलियों एक बहुत ही उच्च विशिष्टता है (1000)
  2. आईडी की 100
  3. वर्गों/गुण और छद्म वर्गों को जोड़ने 10
  4. तत्वों और छद्म तत्वों को जोड़ने 1
एक विशिष्टता है

कुल विशिष्टता निर्धारित करने के लिए चयनकर्ता श्रृंखला में सभी भागों को जोड़ें। टाई के मामले में, अंतिम चयनकर्ता को प्राथमिकता मिलती है।

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

+0

+1 अच्छा जवाब @Eric –

+0

स्पष्ट स्पष्टीकरण। – refactor

+0

क्या आप तीनों के बीच अंतर को स्पष्ट करने के लिए अपनी व्याख्या में विशिष्टता शामिल कर सकते हैं: विरासत, कैस्केड और विशिष्टता? –

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