大きな太字のキャップロック TL;DR:
私はセレクターの特異性がどのように決定されるかを知っています。それは欠陥のある仮定を使用していると思いますが、有効な集合理論の関係で私のイライラを裏付けることができます。特異性について W3 計算規則を説明することに応答しないでください。質問を読んでください <- それを読んでください。
これは、以下のような HTML のスタイルを作成するときに、しばらく気になりました。
...
<div id="outer">
<span id="inner"></span>
<span></span>
...
</div>
...
特異性ルールがセレクター「#outer span」を「#inner」よりも具体的にするのはなぜですか? ID は一意なので、「#inner」と言うと、1 つの要素しか参照できないのに、なぜ具体性が低いのでしょうか? 具体性を判断する際のルールは理解していますが、これが意図的なものなのか偶発的なものなのか、CSS 標準を書いている人にこの質問をする方法を誰かが知っているのだろうかと思います。
私は #outer #inner を使用して最大の特異性を確保できることを理解していますが、それはそもそも ID の目的を無効にしているようです。これは、私がテンプレートを書いているときに問題のある解決策でもあり、ある ID が別の ID の中にあるかどうか確信が持てません。私は回避策を探しているのではなく、理論的な答えを探しているだけです。
私の質問は理論であり、完全に設定されたロジックに基づいています。私が持っているのは、n個の可能なアイテムの1つのアイテムのルールを定義する場合、それはできる限り具体的ではないということですか? CSS セレクターの作成者は、より具体的なルールとして、m が n のサブセットである場合に、n 個の可能なアイテムの m 個のアイテムを定義できるルールを作成するのはなぜですか?
私の考えでは、#id は 1 つのアイテムを名前で識別するのと同等であり、#id elm は名前でアイテムとの関係によってグループを識別します。名前付きのリレーションを持つ名前のないグループよりも具体的でない名前付きのアイテムを呼び出すことは、完全に直観に反しています。