2012-08-07 12 views
8

निम्नलिखित पर विचार करें:सीएसएस में ओवरलैपिंग नियम - पीछे सही तर्क क्या है?

<td class="datepickerDisabled"><a href="#"><span>12</span></a></td> 

मेरी सीएसएस में, वहाँ दो नियम इस चयनकर्ता मेल चाहती हूं:

tbody.datepickerDays td:hover { 
    border-radius: 2px; 
    -moz-border-radius: 2px; 
    -webkit-border-radius: 2px; 
    background-color: #ddd; 
} 

और दूसरा एक है:

td.datepickerDisabled:hover { 
    background-color: white; 
} 

दूसरा background-color से white पर सेट करने के लिए नियम मिलान नहीं किया गया है। मुझे लगता है कि यह नियम पिछले नियम को ओवरराइड कर देगा क्योंकि यह अधिक विशिष्ट है (वर्ग datepickerDisabled के साथ कक्ष)।

+0

0,0,2,2 0,0,2,1 बनाम। पहला व्यक्ति स्पष्ट रूप से जीतता है। –

+0

क्या आप अपना उत्तर समझाएंगे? – oneiros

उत्तर

11

"0,0,2,2 बनाम 0,0,2,1। पहला व्यक्ति स्पष्ट रूप से जीतता है।"

tbody   Element  d 
.datepickerDays Class  c 
td    Element  d 
:hover   Pseudo-class c 
           = 0,0,2,2 

td     Element  d 
.datepickerDisabled Class  c 
:hover    Pseudo-class c 
           = 0,0,2,1 

आप इस प्रारूप समझ में नहीं आता है, तो http://www.w3.org/TR/CSS21/cascade.html#specificity पढ़ें:

एक चयनकर्ता के विशिष्टता गणना निम्न प्रकार है:

  • गिनती 1 यदि घोषणा एक 'शैली' है से है एक चयनकर्ता के साथ नियम के बजाय विशेषता, 0 अन्यथा (= ए) (एचटीएमएल में, तत्व की "शैली" विशेषता मान स्टाइल शीट नियम हैं। इन नियमों में चयनकर्ता नहीं हैं, इसलिए एक = 1, बी = 0, c = 0, और घ = 0।)
  • आईडी की संख्या चयनकर्ता में जिम्मेदार बताते हैं (= ख)
  • चयनकर्ता (में अन्य विशेषताओं और छद्म वर्गों की संख्या की गिनती गिनती = ग)
  • गिनती चयनकर्ता में तत्व नामों और छद्म तत्वों की संख्या (= डी) विशिष्टता केवल चयनकर्ता के रूप में आधारित है। विशेष रूप से, "[id = p33]" फ़ॉर्म का चयनकर्ता को एक विशेषता चयनकर्ता (ए = 0, बी = 0, सी = 1, डी = 0) के रूप में गिना जाता है, भले ही आईडी विशेषता को परिभाषित किया गया हो स्रोत दस्तावेज़ के डीटीडी में "आईडी"।

चार नंबर ए-बी-सी-डी ( बड़े आधार के साथ एक संख्या प्रणाली में) विशिष्टता देता है।

आप एक तस्वीर source पसंद करते हैं:

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