मूल तत्व में एक या अधिक बाल तत्व हो सकते हैं:
<div class="parent">
<div>Child</div>
<div>Child</div>
<div>Child</div>
<div>Child</div>
</div>
इन बच्चों में, उनमें से केवल एक ही पहला हो सकता है। यह इस से मेल खाता है :first-child:
<div class="parent">
<div>Child</div> <!-- :first-child -->
<div>Child</div>
<div>Child</div>
<div>Child</div>
</div>
के बीच का अंतर :first-childऔर :first-of-typeवह यह है कि :first-of-typeजो HTML में अपने टैग नाम का प्रतिनिधित्व करती है अपने तत्व प्रकार, के पहले तत्व की पूर्ति करेंगे, भले ही उस तत्व माता पिता की पहली संतान नहीं है । अब तक जिन बाल तत्वों को हम देख रहे हैं, वे सभी divs हैं, लेकिन मेरे साथ सहन करते हैं, मैं इसे थोड़ा सा प्राप्त करूँगा।
अभी के लिए, काफिला भी सही है: कोई :first-childभी :first-of-typeआवश्यकता के अनुसार है। चूँकि यहाँ पहला बच्चा भी पहला है div, इसलिए यह छद्म वर्गों दोनों से मेल खाएगा , साथ ही साथ चयनकर्ता भी div:
<div class="parent">
<div>Child</div> <!-- div:first-child, div:first-of-type -->
<div>Child</div>
<div>Child</div>
<div>Child</div>
</div>
अब, यदि आप पहले बच्चे के प्रकार divको किसी और चीज़ से बदलते हैं , जैसे h1, यह अभी भी पहला बच्चा होगा, लेकिन यह अब divस्पष्ट रूप से पहला नहीं होगा ; इसके बजाय, यह पहला (और केवल) बन जाता है h1। यदि divइस माता-पिता के भीतर इस पहले बच्चे के बाद कोई अन्य तत्व हैं, divतो उन तत्वों में से पहला मैच करेगा div:first-of-type। दिए गए उदाहरण में, divपहला बच्चा पहले बच्चे के बदले जाने के बाद दूसरा बच्चा बन जाता है h1:
<div class="parent">
<h1>Child</h1> <!-- h1:first-child, h1:first-of-type -->
<div>Child</div> <!-- div:nth-child(2), div:first-of-type -->
<div>Child</div>
<div>Child</div>
</div>
ध्यान दें कि :first-childइसके बराबर है :nth-child(1)।
इसका अर्थ यह भी है कि किसी भी तत्व :first-childमें एक समय में केवल एक ही बाल तत्व का मिलान हो सकता है, लेकिन उसके पास :first-of-typeछद्म वर्ग से मेल खाने वाले जितने बच्चे होंगे, उतने ही बच्चे होंगे । हमारे उदाहरण में, चयनकर्ता .parent > :first-of-type(एक छद्म *योग्यता के साथ :first-of-typeछद्म) दो तत्वों से मेल खाएगा , न कि केवल एक:
<div class="parent">
<h1>Child</h1> <!-- .parent > :first-of-type -->
<div>Child</div> <!-- .parent > :first-of-type -->
<div>Child</div>
<div>Child</div>
</div>
एक ही के लिए सच है :last-childऔर :last-of-type: किसी :last-childभी आवश्यकता के द्वारा भी है :last-of-type, बिल्कुल कोई अन्य तत्व अपने माता पिता के भीतर का पालन करता है। फिर भी, क्योंकि अंतिम divभी अंतिम बच्चा है, h1अपने प्रकार का अंतिम होने के बावजूद अंतिम बच्चा नहीं हो सकता है।
:nth-child()और :nth-of-type()सिद्धांत में समान रूप से कार्य करते हैं जब एक मनमाना पूर्णांक तर्क के साथ उपयोग किया जाता है (जैसा :nth-child(1)कि ऊपर उल्लेख किया गया है), लेकिन जहां वे भिन्न होते हैं वे संभावित तत्वों की संख्या से मेल खाते हैं :nth-of-type()। यह विस्तार से कवर किया गया है कि p: nth-child (2) और p: nth-of-type (2) में क्या अंतर है?