CSS सेलेक्टर विशिष्टता क्या है और यह कैसे काम करती है?
ब्राउज़र यह निर्धारित करता है कि CSS नियमों की विशिष्टता के आधार पर किसी तत्व पर कौन सी शैलियाँ दिखानी हैं। हम मानते हैं कि ब्राउज़र ने पहले ही उन नियमों को निर्धारित कर लिया है जो किसी विशेष तत्व से मेल खाते हैं। मिलान करने वाले नियमों में, प्रत्येक नियम के लिए विशिष्टता, चार कॉमा-सेपरेटेड मान, a, b, c, d
की गणना निम्नलिखित के आधार पर की जाती है:
a
यह है कि क्या इनलाइन शैलियों का उपयोग किया जा रहा है। यदि गुण घोषणा तत्व पर एक इनलाइन शैली है, तोa
1 है, अन्यथा 0।b
आईडी चयनकर्ताओं की संख्या है।c
कक्षाओं, विशेषताओं और छद्म-कक्षाओं के चयनकर्ताओं की संख्या है।d
टैग और छद्म-तत्व चयनकर्ताओं की संख्या है।
परिणामी विशिष्टता एक स्कोर नहीं है, बल्कि मानों का एक मैट्रिक्स है जिसे कॉलम दर कॉलम तुलना की जा सकती है। यह निर्धारित करने के लिए चयनकर्ताओं की तुलना करते समय कि किसकी विशिष्टता सबसे अधिक है, बाएं से दाएं देखें, और प्रत्येक कॉलम में उच्चतम मान की तुलना करें। इसलिए कॉलम b
में एक मान कॉलम c
और d
में मानों को ओवरराइड करेगा, चाहे वे कुछ भी हों। जैसे, 0,1,0,0
की विशिष्टता 0,0,10,10
से अधिक होगी।
समान विशिष्टता के मामलों में: नवीनतम नियम वही है जो मायने रखता है। यदि आपने अपनी स्टाइलशीट (आंतरिक या बाहरी की परवाह किए बिना) में एक ही नियम दो बार लिखा है, तो आपकी स्टाइल शीट में निचला नियम स्टाइल किए जाने वाले तत्व के करीब है, इसे अधिक विशिष्ट माना जाता है और इसलिए इसे लागू किया जाएगा।
मैं कम विशिष्टता वाले CSS नियम लिखूंगा ताकि यदि आवश्यक हो तो उन्हें आसानी से ओवरराइड किया जा सके। CSS UI घटक लाइब्रेरी कोड लिखते समय, यह महत्वपूर्ण है कि उनकी विशिष्टता कम हो ताकि लाइब्रेरी के उपयोगकर्ता उन्हें केवल विशिष्टता बढ़ाने या !important
का सहारा लेने के लिए बहुत जटिल CSS नियमों का उपयोग किए बिना ओवरराइड कर सकें।