2015-03-12 10 views
5

Per quanto ne so i selettori CSS vengono valutati da destra a sinistra, quindi body div * selezionerebbe ogni elemento, rispetto all'aspetto che ha un genitore di tipo div e di quelli che ha un genitore di tipo body. Quello di cui sono incerto è il modo in cui le pseudo-classi dinamiche vengono valutate in questa catena.Una pseudo-classe dinamica è stata valutata prima del resto del selettore?

Se avessi un selettore come div *:hover come sarebbe la valutazione?

  1. :hover =>* =>div
  2. * =>:hover =>div
  3. Un'altra soluzione non ho pensato a
+2

Probabilmente, dipende dall'implementazione. – Oriol

+4

La valutazione sembra più simile a '*: hover' => ancestor' div' per un'implementazione tipica. Non esiste una nozione di ordine all'interno di un singolo selettore composto, eccetto l'ordine di cui i selettori semplici sarebbero più facili da eguagliare, e ciò è deciso da 1) quali sono i selettori semplici in uso e 2) l'implementazione. Vedere queste risposte: [\ [1 \]] (http://stackoverflow.com/a/5813672) [\ [2 \]] (http://stackoverflow.com/a/10108700) Si noti che questa domanda riguarda pseudo-classi dinamiche, che lo rendono più interessante, anche se alla fine riguarda ancora i dettagli di implementazione. – BoltClock

risposta

-1

Purtroppo,

* => :hover => div 

Il universale s l'elettore viene valutato per primo, il che significa che guarda ogni elemento nel DOM, quindi controlla se è in uno stato :hover. Infine, per ogni elemento corrispondente, verifica quindi un genitore div.

+1

Hai qualche fonte/articolo su questo argomento? –

Problemi correlati