Badam css i typografię, i wpadłem na tę intrygującą koncepcję pseudo-selektorów. Użyłem selektorów psuedo z pojedynczymi dwukropkami i jestem obeznany z wersją podwójnego dwukropka selektorów psuedo. I understand, że podwójny dwukropek jest nazywany pseudoelementem zamiast pseudo-selektora - ale dlaczego? I jaka jest różnica?CSS "::" vs ":" - pseudoelement vs pseudo-selektor?
Rozumiem również, że pojedynczy dwukropek jest znacznie bardziej obsługiwany, więc w jakiej sytuacji użyłbyś pseudoelementu dwukropka? Czy są przypadki użycia, w których dwukropek byłby konieczny, a pojedynczy dwukropek nie wykonałby tej pracy? jaka może być ta sytuacja?
"W przeciwieństwie do pseudoelementów, pseudoklasy mogą pojawiać się w dowolnym miejscu łańcucha selektora." (cytat z linku) - nie wiem, czym jest "łańcuch selekcyjny", ale wydaje się to również kolejnym ograniczeniem podejścia dwukropka. Dlaczego musiałbym używać podwójnego dwukropka, jeśli jest to (w moim rozumieniu) tylko mniej obsługiwana wersja pojedynczego dwukropka?
edit: nie wydają się być funkcjonalnie takie same: 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;
}
Jako [stan MDN] (https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements): "Czasami zobaczysz podwójne dwukropki (: :) zamiast tylko jednego (:) To jest część CSS3 i próba rozróżnienia między pseudo-klasami i pseudoelementami. Większość przeglądarek obsługuje obie wartości. " – j08691
Zgodnie z https://developer.mozilla.org/en/docs/Web/CSS/:nth-child nth-child jest selektorem pseudoklasycznym, więc powinieneś użyć pojedynczego dwukropka, a nie doble dwukropka (ponieważ nie jest to selektor psedo-element). –
Dlaczego nazywasz je pseudo-selektorami, gdy dokumentacja nazywa je pseudo-klasami? –