Большая жирная крышка-замок TL; DR:
Я ЗНАЮ, КАК ОПРЕДЕЛЯЕТСЯ СПЕЦИФИКАЦИЯ SELECTOR, Я ДУМАЮ, ЧТО ЭТО ИСПОЛЬЗУЕТ ВОЗМОЖЕННЫЕ ПРЕДПОЛОЖЕНИЯ И Я МОГУ ВЕРНУТЬ МОИ ОБОСНОВАНИЯ С ДЕЙСТВИТЕЛЬНЫМИ ОТНОШЕНИЯМИ ТЕЛЕВИЗИОННЫХ СВОЙСТВ, ПОЖАЛУЙСТА, НЕ ОТВЕЧАЙТЕ РАЗВИТИЕ ПРАВИЛ РЕГУЛИРОВАНИЯ W3 ДЛЯ СПЕЦИФИКА, ПОЖАЛУЙСТА, ПРОЧИТАЙТЕ ВОПРОС < - читать, что.
Это беспокоило меня в течение некоторого времени, когда я пишу стиль для некоторого HTML, который будет похож на ниже:
...
<div id="outer">
<span id="inner"></span>
<span></span>
...
</div>
...
Почему правила специфичности делают селектор "#outer span" более конкретным, чем "#inner"? Идентификатор уникален, поэтому, когда я говорю "#inner", я могу ТОЛЬКО относиться к одному элементу, так почему он менее конкретный? Я понимаю правила определения специфики, мне просто интересно, было ли это преднамеренным или случайным, также, если кто-нибудь знает, как я могу задать этот вопрос людям, которые пишут стандарты css.
Я должен отметить, что я понимаю, что я МОЖЕТ использовать #outer #inner, чтобы обеспечить максимальную специфичность, но похоже, что он сначала поражает цель идентификатора. Это также проблематичное решение, когда я пишу шаблоны, и я не уверен, что один ID будет внутри другого. Я не ищу обходного пути, просто теоретический ответ.
Мой вопрос - теория, полностью основанная на заданной логике. Хотя у меня есть то, что если вы определяете правило для 1 пункта из n возможных элементов, разве это не так точно, как вы можете идти? Почему создатели селекторов CSS создают правило, которое может определять m элементов из n возможных элементов, где m является подмножеством n в качестве более конкретного правила?
Моя мысль состоит в том, что #id будет эквивалентом идентификации 1 элемента по имени, а #id elm будет идентифицировать группу по ее отношению к элементу по имени. Он полностью противодействует интуитивному вызову именованного элемента, который менее специфичен, чем неназванная группа с именованным отношением.