दिलचस्प पोस्ट
स्ट्रक्चर घोषणा में बृहदान्त्र का क्या अर्थ है, जैसे: 1,: 7,: 16, या: 32? एक OSX निष्पादन योग्य करने के लिए कन्वर्ट। एक INTERNAL_ERROR हुआ जब GoogleSignInOptions से ईमेल अनुरोध Android Xcode 6 में स्टोरीबोर्ड में "मार्जिन पर नियंत्रण" क्या है उपयोगकर्ता टिप्पणियों के लिए मैं एक बॉक्स कैसे खोल सकता हूँ? दायां कोष्ठक के साथ कम-अल्फा क्रमबद्ध सूची (एचटीएमएल)? jquery के साथ iframe स्रोत बदल रहा है SSL / TLS सुरक्षित चैनल – एसओएपी के लिए विश्वास संबंध स्थापित नहीं किया जा सका एंड्रॉइड एनडीके लिंकिंग एंड्रॉइड में पुनरावृत्त गतिशील जेएसएन स्ट्रिंग के माध्यम से लूप करने में असमर्थ jQuery के एचटीएमएल विशेषता IE में काम नहीं कर रहा है if-else if-else बयान और कोष्ठक फार्मूला बार में सूत्रों को छिपाते हुए जेडबीसीसी केरबोर्स कीटाब के साथ हाइव मेटास्टोर तक पहुंच जावास्क्रिप्ट में "=>" का अर्थ क्या है (एक बराबर से बड़ा तीर और बड़ा है)?

सीएसएस विशिष्टता में अंक

विशिष्टता का शोध मैं इस ब्लॉग पर ठोकर खाई – http://www.htmldog.com/guides/cssadvanced/specificity/

यह बताता है कि विशिष्टता सीएसएस के लिए एक बिंदु-स्कोरिंग सिस्टम है। यह बताता है कि तत्व 1 बिंदु के लायक हैं, कक्षाएं 10 अंक के लायक हैं और आईडी 100 अंक के लायक हैं। यह शीर्ष पर भी जाता है कि ये अंक कुल हैं और कुल राशि यह है कि चयनकर्ता की विशिष्टता।

उदाहरण के लिए:

शरीर = 1 बिंदु
शरीर। वाइपर = 11 अंक
body.Wrapper #container = 111 अंक

इसलिए, इन बिंदुओं का उपयोग करके निश्चित रूप से निम्नलिखित सीएसएस और एचटीएमएल के परिणामस्वरूप पाठ नीला होगा:

सीएसएस:

#a { color: red; } .a .b .c .d .e .f .g .h .i .j .k .l .m .n .o { color: blue; } 

HTML:

 <div class="a"> <div class="b"> <div class="c"> <div class="d"> <div class="e"> <div class="f"> <div class="g"> <div class="h"> <div class="i"> <div class="j"> <div class="k"> <div class="l"> <div class="m"> <div class="n"> <div class="o" id="a"> This should be blue. </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> 

परिणाम:

http://jsfiddle.net/hkqCF/

पाठ क्यों लाल होता है जब 15 कक्षाएं 1 अंक के मुकाबले 150 अंक के बराबर होती हैं जो 100 अंकों के बराबर होती है?

संपादित करें:

इसलिए जाहिरा तौर पर अंक सिर्फ कुल मिलाकर नहीं होते हैं, वे जोड़ कर रहे हैं। इसके बारे में अधिक पढ़ें – http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html लेकिन, इसका मतलब यह है कि हमारे चयनकर्ता = 0,0,15,0 या 0,1,5,0 ?

मेरी प्रवृत्ति मुझे बताती है कि यह पूर्व है जैसा कि हम जानते हैं कि आईडी चयनकर्ता की विशिष्टता इस तरह दिखती है: 0,1,0,0

Solutions Collecting From Web of "सीएसएस विशिष्टता में अंक"

पेक्का का उत्तर व्यावहारिक रूप से सही है, और शायद इस मुद्दे के बारे में सोचने का सबसे अच्छा तरीका है।

हालांकि, जैसा कि कई ने पहले ही बताया है, डब्ल्यू .3 सी। सीएसएस की सिफारिशों में कहा गया है कि "तीन नंबर एबीसी (एक बड़े बेस के साथ एक नंबर प्रणाली में) को जोड़ना विशिष्टता देता है।" तो मेरे अंदर गियर सिर्फ यह पता लगाना था कि यह आधार कितना बड़ा है।

यह पता चला है कि इस मानक एल्गोरिथम को लागू करने के लिए "बहुत बड़े आधार" को नियोजित किया जाता है (कम से कम 4 सबसे सामान्य इस्तेमाल वाले ब्राउज़र * द्वारा ) 256 या 2 8 है

इसका क्या मतलब यह है कि 0 आईडी और 256 वर्ग के नामों के साथ निर्दिष्ट शैली केवल 1 आईडी के साथ निर्दिष्ट शैली को ओवर-सवारी करेंगे मैंने कुछ फिडेल्स के साथ यह परीक्षण किया:

  • 255 कक्षाएं 1 आईडी ओवरराइड करने के लिए पर्याप्त नहीं हैं
  • … लेकिन 256 कक्षाएं 1 आईडी ओवरराइड करने के लिए पर्याप्त हैं
  • … और 256 टैग-नाम 1 वर्ग-नाम को ओवरराइड करने के लिए पर्याप्त हैं

  • … लेकिन, अफसोस है कि 256 आईडी एक इनलाइन शैली को ओवरराइड करने के लिए पर्याप्त नहीं हैं (अपडेट किया गया 2012/8/15 – आपको उपयोग करना होगा !important )

इसलिए प्रभावी रूप से एक "बिंदु प्रणाली" है, लेकिन यह 10 आधार नहीं है। यह आधार 256 है। यहां यह कैसे काम करता है:

(2 8 ) 2 या 65536, चयनकर्ता में आईडी की संख्या
+ (2 8 ) 1 या 256, चयनकर्ता में कक्षा-नामों की संख्या
+ (2 8 ) 0 या 1, चयनकर्ता में टैग-नामों की संख्या

अवधारणा के बारे में संवाद करने के लिए बैक-ऑफ-
शायद यही वजह है कि विषय पर आलेख 10 आधार का उपयोग कर रहे हैं

***** [ओपेरा 2 का उपयोग करता है 16 (करालको की टिप्पणी देखें) कुछ अन्य चयनकर्ता इंजन अनन्तता का उपयोग करते हैं – प्रभावी रूप से कोई अंक प्रणाली नहीं (सिमोन साइपिन की टिप्पणी देखें)।]

अपडेट, जुलाई 2014:
ब्लेज़मॉन्जर ने वर्ष में पहले बताया था, वेबकिट ब्राउज़र (क्रोम, सफारी) अब 256 से अधिक का उपयोग करने के लिए प्रतीत होता है। शायद 2 16 , ओपेरा की तरह? IE और फ़ायरफ़ॉक्स अभी भी 256 का उपयोग करते हैं

अच्छा प्रश्न।

मैं यह सुनिश्चित करने के लिए नहीं बता सकता कि – सभी लेख मैं कई वर्गों के उदाहरण से बचने का प्रबंधन करता हूं, उदाहरण के लिए – लेकिन मैं मानता हूं कि जब क्लास चयनकर्ता और आईडी के बीच विनिर्देश की तुलना करने की बात आती है, तो कक्षा को केवल 15 मान, चाहे कितना विस्तृत हो।

यह मेरे अनुभव से मेल खाता है कि विशिष्टता कैसे व्यवहार करती है

हालांकि, कक्षाओं में कुछ स्टैकिंग होने चाहिए क्योंकि

 .a .b .c .d .e .f .g .h .i .j .k .l .m .n .o 

अधिक से अधिक विशिष्ट है

 .o 

केवल एकमात्र स्पष्टीकरण है कि स्टैक्ड वर्गों की विशिष्टता केवल एक दूसरे के खिलाफ की जाती है लेकिन आईडी के विरुद्ध नहीं।

अद्यतन : मैं आधे रास्ते अब इसे प्राप्त करें यह एक अंक प्रणाली नहीं है, और 15 अंकों के वजन के बारे में जानकारी गलत है। यह एक 4-भाग क्रमांकन प्रणाली है जिसे बहुत अच्छी तरह से समझाया गया है ।

प्रारंभिक बिंदु 4 आंकड़े हैं:

 style id class element 0, 0, 0, 0 

विशिष्टता पर डब्लू 3 सी विवरण के अनुसार उपरोक्त नियमों के लिए विनिर्देशित मूल्य हैं:

 #a 0,1,0,0 = 100 classes 0,0,15,0 = ... see the comments 

यह एक बहुत बड़ी (अपरिभाषित?) बेस के साथ संख्याबद्ध प्रणाली है

मेरी समझ यह है कि क्योंकि आधार बहुत बड़ा है, कॉलम 4 में कोई भी संख्या किसी संख्या को नहीं> 0 कॉलम 3, स्तंभ 2, कॉलम 1 के लिए समान कर सकता है …. क्या यह सही है?

मुझे दिलचस्पी होगी कि मेरे द्वारा गणित में किसी बेहतर समझ से कोई और संख्या का पता लगा सकता है और यह कैसे दशमलव में बदल सकता है जब व्यक्तिगत तत्व 9 से बड़े होते हैं।

मैं वर्तमान में सीएसएस महारत का प्रयोग कर रहा हूँ : उन्नत वेब मानक समाधान

अध्याय 1, पृष्ठ 16 कहता है:

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

(जोर खान) और

चयनकर्ता की विशिष्टता को चार घटक स्तरों में विभाजित किया गया है: ए, बी, सी, और डी।

  • यदि शैली एक इनलाइन शैली है, तो एक = 1
  • बी = आईडी चयनकर्ताओं की कुल संख्या
  • सी = कक्षा, छद्म वर्ग, और विशेषता चयनकर्ताओं की संख्या
  • डी = प्रकार चयनकर्ताओं और छद्म तत्व चयनकर्ताओं की संख्या

यह कहते हैं कि आप अक्सर बेस -10 में गणना कर सकते हैं, लेकिन केवल अगर सभी कॉलम में 10 से कम मूल्य हैं।


आपके उदाहरणों में, आईडी 100 अंक के लायक नहीं हैं; प्रत्येक के लायक है [0, 1, 0, 0] अंक इसलिए, एक आईडी 15 वर्गों को धराशायी करता है क्योंकि [0, 1, 0, 0] [0, 0, 15, 0] एक उच्च-बेस संख्या प्रणाली में [0, 0, 15, 0] से बड़ा है।

वर्तमान चयनकर्ता स्तर 4 वर्किंग ड्राफ्ट सीएसएस में विशिष्टता का वर्णन करने का एक अच्छा काम करता है:

विशिष्टताओं की तुलना तीन घटकों की तुलना करके की जाती है: बड़े वैल्यू के साथ विशिष्टता अधिक विशिष्ट है; यदि दोनों एक मान बंधे हैं, तो एक बड़ा बी मान के साथ विशिष्टता अधिक विशिष्ट है; अगर दो बी मूल्यों को भी बंधे हैं, तो एक बड़ा सी मान के साथ विशिष्टता अधिक विशिष्ट है; अगर सभी मान बद्ध हों, तो दो विशिष्टताएं समान हैं।

इसका अर्थ है कि मूल्य ए, बी और सी एक दूसरे से पूरी तरह से स्वतंत्र हैं।

15 कक्षाएं आपके चयनकर्ता को 150 का एक विशिष्टता स्कोर नहीं देती है, इसलिए इसे 15 का बी मान देता है। एक एकल मान इस पर असर डालने के लिए पर्याप्त है

रूपक के रूप में, 1 भव्य माता-पिता, 1 अभिभावक और 1 बच्चे के परिवार की कल्पना करें यह 1,1,1 के रूप में प्रदर्शित किया जा सकता है यदि माता-पिता के पास 15 बच्चे हैं, तो उन्हें अचानक एक और माता पिता ( 1,2,0 ) नहीं बनाते हैं इसका मतलब है कि माता-पिता के पास केवल 1 बच्चे ( 1,1, 15 ) के साथ की तुलना में बहुत अधिक जिम्मेदारी है। 😉

एक ही प्रलेखन भी कहता है:

भंडारण की सीमाओं के कारण, , बी या सी के आकार पर क्रियान्वयन की सीमाएं हो सकती हैं यदि हां, तो सीमा से अधिक मूल्यों को उस सीमा तक लगाया जाना चाहिए, और अतिप्रवाह नहीं होना चाहिए।

इसे फ़ॉस्ट के उत्तर में प्रस्तुत समस्या से निपटने के लिए जोड़ा गया है, जिससे 2012 में सीएसएस कार्यान्वयन विशिष्टता मानों को एक-दूसरे में अतिप्रवाह करने की इजाजत देता है

2012 में वापस, अधिकांश ब्राउज़रों ने 255 की एक सीमा को लागू किया, लेकिन इस सीमा को अतिप्रवाह करने की अनुमति दी गई थी। 255 कक्षाओं में 0,255,0 के ए, बी, सी विशिष्टता स्कोर था, लेकिन 256 कक्षाएं अतिप्रवाह थी और उनमें ए, बी, सी का स्कोर 1,0,0 था । अचानक हमारे बी मूल्य हमारे मूल्य बन गया। चयनकर्ता स्तर 4 प्रलेखन पूरी तरह से यह समस्या बताती है कि सीमा को अतिप्रवाह करने की अनुमति नहीं दी जा सकती है। इस कार्यान्वयन के साथ, 255 और 256 वर्गों के पास ए, बी, सी स्कोर 0,255,0 होगा

फ़ॉस्ट के उत्तर में दी गई समस्या को अब तक के अधिकांश आधुनिक ब्राउज़रों में तय किया गया है।

मुझे विश्वास नहीं है कि ब्लॉग की व्याख्या सही है। विनिर्देश यहाँ है:

http://www.w3.org/TR/CSS2/cascade.html#specificity

क्लास चयनकर्ता से "अंक" एक "आईडी" चयनकर्ता से ज्यादा महत्वपूर्ण नहीं हो सकते। यह सिर्फ ऐसा काम नहीं करता है

मैं विशिष्टता रैंकिंग की तुलना ओलंपिक खेलों पदक तालिका (सोने की पहली विधि – पहले स्वर्ण पदक, फिर चांदी और फिर कांस्य की संख्या पर आधारित) के लिए पसंद करता हूं।

यह आपके प्रश्न के साथ काम करता है (एक विशिष्ट समूह में चयनकर्ताओं की बड़ी संख्या)। विशिष्टता प्रत्येक समूह को अलग से माना जाता है असली दुनिया में मैंने एक दर्जन से अधिक चयनकर्ताओं के साथ बहुत कम मामला देखा है)।

यहां भी काफी अच्छा विशिष्टता कैलकुलेटर उपलब्ध है । आप अपना उदाहरण (# ए और। ए। बी। सी। डी। एफ। जी .एच.आई.जे। के.के.एल.एम.एन.ओ.ओ) डाल सकते हैं और परिणाम देख सकते हैं।

रियो 2016 ओलंपिक खेलों पदक तालिका का उदाहरण दिखता है यहां छवि विवरण दर्ज करें

मैं कहूँगा कि:

 Element < Class < ID 

मुझे लगता है कि वे केवल उस आधार पर निर्भर करते हैं जो आपको मिलते हैं यदि यह एक ही है तो एक वर्ग हमेशा कक्षा पर हमेशा तत्व और आईडी को ओवरराइड करेगा, लेकिन अगर यह 4 तत्वों में से कम है, जहां 3 नीला है और 1 लाल है तो यह नीला होगा।

उदाहरण के लिए:

 .a .b .c .d .e .f .g .h .i .j .k .l { color: red; } .m .n .o { color blue; } 

लाल होना चाहिए

उदाहरण देखें http://jsfiddle.net/RWFWq/

"अगर 5things लाल कहते हैं और 3 नीली अच्छी तरह से कहते हैं इमा लाल जाना"