回答:
自分の子供を数える場合、「私のゼロ番目の子供」ではなく、「私の最初の子供」、「私の2番目の子供」などと言います。これは単に人間が数える方法です。(注:これは私による主観的な意見ではありません。これは文字通り序数が機能する方法です。)
あなたが質問をする理由はおそらくあなたがプログラマーであり、多くのプログラミング言語が0から配列とリスト項目にインデックスを付けているからでしょう。最初のアイテムのインデックスは、このポインタからの相対オフセットです。つまりarray[0]
、最初のアイテムのアドレスを意味し、最初のアイテムのアドレスと1アイテムarray[1]
のサイズ、つまり2番目のアイテムなどを意味します。
ポインター演算を直接サポートしない多くの高レベル言語では、一貫性と親しみやすさのために0ベースのインデックスが保持されています。たとえば、JavaScriptの配列がまったく異なる方法で実装されている場合でも、JavaScriptを含むC派生構文を持つすべての言語。しかし、これはまったく普遍的ではありません-COBOL、Fortran、Lua、および一部のBasicなどの言語は1ベースのインデックスを使用します。(Visual Basicは、当然、構成可能にすることで両方の世界の最悪のものを選択しました。)したがって、他のすべての言語が0ベースのインデックスを使用することは間違いありません。XPathとXQueryは、その価値に応じて1ベースのインデックス作成も使用します。
ほとんどのプログラマーは1と0の両方のインデックス付けに慣れていますが、普通の人は当然1から数えます。CSSはプログラマーだけでなく、デザイナーやグラフィックの専門家のために設計された言語なので、1ベースのインデックス付けを選択するのが自然です。
6.6.5.2。:nth-child()擬似クラス
:nth-child(an+b)
擬似クラス表記は有する元素を表しan+b-1
、任意の正の整数またはゼロ値に対して、文書ツリー内のその前の兄弟をn
、親要素を有しています。値についてa
とb
ゼロよりも大きい、これは効果のグループに要素の子を分割a
要素(最後のグループは余りをとる)、および選択b
、各グループの第要素。たとえば、これにより、セレクターはテーブル内の1行おきにアドレス指定でき、4サイクルで段落テキストの色を変えるために使用できます。a
そしてb
値は整数(正、負、またはゼロ)でなければなりません。要素の最初の子のインデックスは1です。
例でさらに詳しく説明します。最終的な計算のan+b
合計は正数になるようです。
場合
a
0(=ない限り、一部の必要性が含まれていないb
部分が既に省略されています)。場合にan
含まれず、b
非負、前に+記号であるb
(許可された場合に)省略することもできます。この場合、構文はに簡略化され:nth-child(b)
ます。両方の場合
a
とb
ゼロに等しい、擬似クラスは、文書ツリー内のどの要素を表します。
最後の段落の追加の書式設定は、強調するためのものです。
おそらく、別のXML / HTML処理言語であるXPathとの一貫性のために。どちらが質問を頼みます、なぜXPathは1ベースのインデックスを使用しますか?
/programming/3319341/why-do-indexes-in-xpath-start-with-1-and-not-0を参照してください
関連する(ただし、議論の余地のある引用)は:
「... 1ベースのロジックは、XPathとXSLTの正しい選択でした...言語はプログラマー向けではなくユーザー向けに設計されていたため、ユーザーは本の最初の章を第一章..."