* > ul li:nth-child(4n+3)
In primo luogo, il * >
all'inizio di questo selettore è del tutto superfluo (Si dice al browser di cercare un ul
che è un figlio di qualcos'altro;. Quant'altro, naturalmente, tutti Gli elementi ul
sono, se non altro, saranno all'interno del tag body
).
Quindi è possibile rimuovere quello. Renderà più semplice lavorare e più facile da spiegare.
Ora siamo lasciati con questo:
ul li:nth-child(4n+3)
Il motivo è la raccolta sia 2.3
e 3
è perché entrambe le serie di li
elementi discendono dal singolo elemento padre ul
. L'utilizzo di uno spazio tra i selettori indica al browser di cercare discendenti corrispondenti a; non si preoccupa di quanto in fondo alla struttura cercare gli elementi corrispondenti a li
, quindi trova entrambi i set.
Per rispondere alla tua domanda sul motivo per cui 2.3
non è visto come settimo elemento nel set, la risposta è che CSS vede ogni set di elementi li
come un gruppo completamente separato; anche se il selettore dovesse corrispondere a due o più serie di elementi come ha fatto il selettore originale, verrà comunque eseguito un contatore separato per ciascuna, quindi 2.3
e 3
sono entrambi visti come il terzo elemento nei rispettivi insiemi.
Se si desidera selezionare solo gli elementi che sono bambini del ul
(cioè immediatamente sotto di essa nella gerarchia), è necessario utilizzare il selettore bambino (>
) piuttosto che solo uno spazio.
ul > li:nth-child(4n+3)
questo sarà ora possibile selezionare solo il set esterno della li
elementi, in modo che solo il vostro elemento 3
sarà raccolto.
La speranza aiuta a spiegare le cose.
Tra l'altro, su un piano più generale, si potrebbe trovare questo utile: CSS '>' selector; what is it?
Ignorando il ''> 'ridondante, il tuo selettore significa:" seleziona ogni 'li' che è il' 4n + 3' figlio del suo elemento padre ed è il discendente di un elemento 'ul'". Non esiste qualcosa come "l'elemento genitore" con il selettore nth-child. Ogni elemento della pagina viene controllato per vedere se è l'ennesimo parente di * suo * elemento genitore. –