क्यों करता है: शून्य-बच्चे () शून्य के बजाय एक से पुनरावृति?
जैसा कि इस उदाहरण में दिखाया गया है । यह पहला तत्व क्यों चुनता है और दूसरा कब नहीं
p :nth-child(1)
क्यों करता है: शून्य-बच्चे () शून्य के बजाय एक से पुनरावृति?
जैसा कि इस उदाहरण में दिखाया गया है । यह पहला तत्व क्यों चुनता है और दूसरा कब नहीं
p :nth-child(1)
जवाबों:
यदि आप अपने स्वयं के बच्चों की गिनती करते हैं तो आप कहेंगे "मेरा पहला बच्चा", "मेरा दूसरा बच्चा" और इसी तरह, "मेरा शून्य बच्चा" नहीं। यह बस इंसानों की गिनती कैसे है। (नोट: यह मेरे द्वारा कुछ व्यक्तिपरक राय नहीं है। यह शाब्दिक है कि क्रमिक संख्याएँ कैसे काम करती हैं।)
कारण यह है कि आप सवाल भी पूछते हैं, क्योंकि शायद आप एक प्रोग्रामर हैं, और कई प्रोग्रामिंग भाषाएं हैं। सरणी और सूची आइटम 0. से हैं। इसका कारण यह है कि सी जैसी निम्न स्तर की भाषाओं में, सरणी वास्तव में मेमोरी पते के लिए एक संकेतक है। पहला आइटम और सूचकांक इस सूचक के सापेक्ष एक ऑफसेट है। तो array[0]
इसका अर्थ है पहली वस्तु array[1]
का पता , मतलब पहली वस्तु का पता और साथ ही १ वस्तु का आकार, अर्थात दूसरी वस्तु और इसी तरह।
कई उच्च-स्तरीय भाषाएं जो सूचक अंकगणित का सीधे समर्थन नहीं करती हैं, उन्होंने निरंतरता और परिचितता के लिए 0-आधारित अनुक्रमण को बनाए रखा है। उदाहरण के लिए, सी-व्युत्पन्न सिंटैक्स वाली सभी भाषाएँ - जावास्क्रिप्ट सहित, भले ही जावास्क्रिप्ट में सरणियों को पूरी तरह से अलग तरीके से लागू किया गया हो। लेकिन यह सभी सार्वभौमिक - COBOL, फोरट्रान, लुआ जैसी भाषाओं और कुछ बेसिक के 1-आधारित इंडेक्सिंग का उपयोग नहीं है। (विजुअल बेसिक ने स्वाभाविक रूप से इसे कॉन्फ़िगर करने योग्य बनाकर दोनों दुनिया में से सबसे खराब को चुना।) तो यह निश्चित रूप से हर दूसरी भाषा के 0-आधारित अनुक्रमण का उपयोग करने जैसा नहीं है। इसके लायक के लिए, XPath और XQuery भी 1-आधारित अनुक्रमण का उपयोग करते हैं।
जबकि अधिकांश प्रोग्रामर 1 और 0-आधारित दोनों अनुक्रमण से परिचित होंगे, सामान्य लोग स्वाभाविक रूप से 1 से गिनती करेंगे, और CSS केवल प्रोग्रामर के लिए नहीं बल्कि डिजाइनरों और ग्राफिक पेशेवरों के लिए डिज़ाइन की गई भाषा है, इसलिए 1-आधारित अनुक्रमण को चुना जाना स्वाभाविक है ।
वहाँ से सीएसएस स्तर 3 चयनकर्ता विशिष्टता :
6.6.5.2। : nth-child () छद्म वर्ग
:nth-child(an+b)
छद्म वर्ग संकेतन एक तत्व है कि प्रतिनिधित्व करताan+b-1
, दस्तावेज़ पेड़ में यह पहले भाई-बहन किसी भी धनात्मक पूर्णांक या शून्य मूल्य के लिएn
, और एक माता पिता के तत्व है। के मूल्यों के लिएa
औरb
शून्य से अधिक, यह प्रभावी रूप से तत्व के बच्चों के समूहों में विभाजितa
तत्वों (पिछले समूह शेष लेने), और का चयनb
प्रत्येक समूह के वें तत्व। उदाहरण के लिए, यह चयनकर्ताओं को एक तालिका में हर दूसरी पंक्ति को संबोधित करने की अनुमति देता है, और इसका उपयोग चार के चक्र में पैरा टेक्स्ट के रंग को वैकल्पिक करने के लिए किया जा सकता है।a
औरb
मान पूर्णांक (सकारात्मक, नकारात्मक या शून्य) होना चाहिए। किसी तत्व के पहले बच्चे का सूचकांक 1 है।
यह उदाहरणों के साथ बहुत अधिक विस्तार में जाता है। ऐसा प्रतीत होता है कि अंतिम गणनाan+b
एक सकारात्मक संख्या के लिए कुल होनी चाहिए।
जब
a
= 0, एक भाग को शामिल करने की आवश्यकता नहीं है (जब तक किb
भाग पहले से ही छोड़ा नहीं जाता है)। जबan
शामिल नहीं है औरb
गैर-नकारात्मक है, तो पहले + संकेतb
(जब अनुमति दी गई है) भी छोड़ा जा सकता है। इस मामले में वाक्यविन्यास सरल हो जाता है:nth-child(b)
।अगर दोनों
a
औरb
शून्य के बराबर हैं, छद्म वर्ग दस्तावेज़ पेड़ में कोई तत्व का प्रतिनिधित्व करता है।
पिछले पैराग्राफ में अतिरिक्त स्वरूपण जोर जोड़ने के लिए मेरा है।
शायद XPath, एक और XML / HTML प्रसंस्करण भाषा के साथ संगति के लिए। जो सवाल पूछता है, XPath 1 आधारित अनुक्रमण का उपयोग क्यों करता है?
Https://stackoverflow.com/questions/3319341/why-do-indexes-in-xpath-start-with-1-and-not-0 देखें
प्रासंगिक (लेकिन विवादास्पद उद्धरण) है:
"... 1-आधारित तर्क XPath और XSLT के लिए सही विकल्प था ... क्योंकि भाषा उपयोगकर्ताओं के लिए डिज़ाइन की गई थी, न कि प्रोग्रामर के लिए, और उपयोगकर्ताओं के पास अभी भी इस पुराने जमाने की आदत है कि किताब में पहले अध्याय का जिक्र है अध्याय एक..."