Sto facendo ricerche su css e tipografia e mi sono imbattuto in questo intrigante concetto di pseudo-selettori. Ho usato selettori psuedo del singolo colon e non ho familiarità con la versione a due punti dei selettori di psuedo. I understand quel doppio colon è chiamato pseudo-elemento invece di uno pseudo-selettore - ma perché? E qual è la differenza?CSS "::" vs ":" - pseudo-elemento vs pseudo-selettore?
Capisco anche che il singolo colon è molto più supportato, quindi in che situazione si userebbe lo pseudoelemento doppio del colon? Ci sono casi d'uso in cui il doppio colon sarebbe necessario, e il colon singolo non farebbe il lavoro? quale potrebbe essere quella situazione?
"A differenza degli pseudo-elementi, le pseudo-classi possono apparire ovunque nella catena di selettori." (citazione dal link) - Non so quale sia la 'catena di selezione', ma questo sembra anche l'ennesima limitazione dell'approccio del doppio colon. Perché dovrei usare il doppio colon se è (a mio modo di vedere) solo una versione meno supportata del colon singolo?
edit: essi sembrano non essere funzionalmente lo stesso: fiddle
<div><p>First Line</p></div>
<div><p>Second Line</p></div>
css
div:nth-child(1) > p {
color: green;
}
div::nth-child(2) > p {
color: blue;
}
Come [stati MDN] (https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements): "A volte si vedranno due doppi punti (: :) anziché uno solo (:) Questo fa parte del CSS3 e un tentativo di distinguere tra pseudo-classi e pseudo-elementi.La maggior parte dei browser supporta entrambi i valori. " – j08691
Secondo https://developer.mozilla.org/en/docs/Web/CSS/:nth-child nth-child è un selettore di pseudo-classe, quindi dovresti usare i due punti singoli, non i due punti (perché non è un selettore psedo-element). –
Perché li chiamate selettori psuedo quando la documentazione li chiama pseudo-classi? –