Я думаю, что идея «почему» - это скорее точка зрения «поколения» или «авторитета».Если #Parent
(любого поколения назад) говорит, что всем моим детям, которые соответствуют квалификации "x" (в вашем случае span
), будет дано наследование "y" (независимо от свойства css), это ненезависимо от того, что хочет отдельный человек #Child
, ему необходимы полномочия #Parent
, чтобы получить его, если родитель указал иное.
Добавлено при редактировании: Встроенный style
тогда будет мятежным ребенком, и !important
суровым родителем. Редактировать: Я сохранил это для юмора, но я не думаю, что это отражает идею, а также мое более позднее утверждение ниже.
Добавлено при редактировании на вопрос в комментарии: Дано:
#outer span ...
#inner (which is a span element)
Тогда, чтобы помочь обеспечить # внутренний выбор, я рекомендую:
body span#inner (*edit:* just span#inner works *edit:* if defined later)
или дать телу идентификатор и
#bodyId #inner
Конечно,они все еще могут быть отменены.Чем больше вовлечено «поколений», тем сложнее изменить поведение из-за консенсуса между поколениями (если прадед, дедушка и родитель согласны, то, скорее всего, ребенку не удастся уйти со своим делом).
При последующем редактировании мне пришлось существенно переписать этот раздел Учитывая этот HTML:
<div id="grandparent">
<div id="parent">
<div id="child"></div>
</div>
</div>
Ранее я говорил, что "#parent div
обладает большими полномочиями, чем #grandparent div
. Обе имеют власть поколений, фактически «равную» власть поколений, но первое побеждает «ближе» поколение. Ошибка в том, что «ближе» к поколению не то, что имеет значение, а скорее последнее, которое будет предоставлено авторитету.Учитывая равные полномочия, победителем будет назначенный последний.
Я верю, что все еще могу придерживаться этого утверждения: Имея в виду эту мысль, селектор типа #child [id] (который перевешивает оба предыдущихселекторы) обрабатывает свои атрибуты как полномочия для предоставления большего права управлять тем, что сам контролирует.Наличие # уже дало ему полномочия, но недостаточно для того, чтобы переопределить # более раннего поколения, если это более раннее поколение также несет другой селектор, дающий больше полномочий.
То есть #grandparent div
перевешивает #child
, но не div#child
, если он последний получил полномочия [добавил это] , а не #child[id]
, потому что [id]
добавляет большие полномочия для #child
, чтобы управлять собой.Если одинаковая избирательность, то побеждает последний, кому предоставлены полномочия.
Опять же, атрибут style
, устанавливающий свойство стиля, сам по себе действует скорее как высшее предоставление полномочий управлять собой, предполагая что-то большее "!important
"не убирай.
В качестве краткого изложения, чтобы ответить" почему "именно так (а не в соответствии с теорией" множества "), я считаю, что это не о точности или даже даже специфичность (хотя это и был используемый термин), поскольку в действительности тогда можно было бы ожидать, что #ChildsName
будет последним уникальным словом в этом вопросе, потому что ничего более конкретного не нужно говорить.Скорее, однако, хотя документация может не указывать это как таковую, «селективность» действительно структурирована на предоставлении права доступа .Кто имеет больше всего «прав» на управление стихией, и кто получил «галстук», кто был последним, кому были предоставлены эти права.