Возможно, ваше представление о специфике немного не в порядке. Специфичность должна быть идеей без контекста: поскольку CSS можно загружать независимо от HTML, вам не нужен HTML-документ, чтобы угадать, какое правило является более «конкретным». Рассмотрим этот другой действительный пример:
<div id="inner">
<div id="container">
<h1>Hello World!</h1>
</div>
</div>
С этим фрагментом вы должны пойти против вашего первоначального предположения, что inner
должно быть более конкретным. Это означает, что для вашей интерпретации необходим контекст (которого нет в CSS).
Дело в том, что оба правила рассматриваются с одинаковой специфичностью (h1
потомки элемента, обозначенного id
), и селектор не дает более высокий приоритет более близким потомкам.
В случае применения двух правил одинаковой специфичности, победителем считается последнее, объявленное в CSS.