Ответ 1
Каждая последовательность простых селекторов и комбинаторов считывается браузерами справа налево линейным образом. Комбинаторы никак не влияют на порядок. Самый правый селектор после последнего комбинатора, если он есть, известен как селектор ключей (см. Ссылки ниже для более подробной информации), и который идентифицирует элемент, к которому применяется правило (также известный как субъект селектора, хотя обратите внимание, что селектор клавиш может не всегда представлять объект селектора, поскольку разные приложения реализуют селектора по-разному).
Селектор #id1 #id2 + #id3
означает
Выбрать элемент
#id3
если он непосредственно следует за братом#id2
то есть потомок#id1
.
Структура DOM, в которой #id3
будет соответствовать селектору, будет выглядеть так:
#id1
... any level of nesting
#id2
#id3
Пока #id1 + #id2 #id3
означает
Выбрать элемент
#id3
если он является потомком#id2
который непосредственно следует за сестрой#id1
.
И структура DOM, в которой #id3
будет соответствовать селектору, будет выглядеть так:
#id1
#id2
... any level of nesting
#id3
Обратите внимание на разницу в позиции элемента #id2
в этой структуре DOM по сравнению с предыдущей.
Здесь нет большой проблемы с приоритетом, так как комбинаторы потомков и родных братьев идут в разных направлениях в DOM. Обе селекторные последовательности читаются справа налево в любом случае.
Похожие ответы: