2015-03-12 2 views
5

Насколько я знаю, CSS-селектора оцениваются справа налево, поэтому body div * будет выбирать каждый элемент, чем смотреть, у которого есть родительский тип div, и те, у которых есть родительский тип тела. Я не уверен, что динамические псевдоклассы оцениваются в этой цепочке.Является ли динамический псевдокласс оценен перед остальной селектором?

Если бы у меня был такой селектор, как div *:hover, как бы оценка была?

  1. :hover =>* =>div
  2. * =>:hover =>div
  3. Другое решение я не думаю о
+2

Возможно, это зависит от реализации. – Oriol

+4

Оценка на самом деле больше похожа на '*: hover' => предка' div' для типичной реализации. В отдельном составном селекторе нет понятия порядка, за исключением того, что простые селекторы будут легче всего сопоставлять, и это определяется 1), какие простые селектора используются, и 2) реализация. См. Следующие ответы: [\ [1 \]] (http://stackoverflow.com/a/5813672) [\ [2 \]] (http://stackoverflow.com/a/10108700) Обратите внимание, что этот вопрос касается динамические псевдоклассы, что делает его более интересным, даже если в конечном счете оно все еще касается деталей реализации. – BoltClock

ответ

-1

К сожалению,

* => :hover => div 

универсальный сначала оценивается электор, что означает, что он выглядит каждый элемент в DOM, затем проверяет, находится ли он в состоянии :hover. Наконец, для любых совпадающих элементов он затем проверяет родителя div.

+1

У вас есть источники/статьи по этой теме? –