Czy jest jakaś funkcjonalna różnica między CSS 2.1 :aftera ::afterpseudo-selektorami CSS 3 (poza ::aftertym, że nie są obsługiwane w starszych przeglądarkach)? Czy jest jakiś praktyczny powód, aby używać nowszej specyfikacji?
Czy jest jakaś funkcjonalna różnica między CSS 2.1 :aftera ::afterpseudo-selektorami CSS 3 (poza ::aftertym, że nie są obsługiwane w starszych przeglądarkach)? Czy jest jakiś praktyczny powód, aby używać nowszej specyfikacji?
Odpowiedzi:
To pseudo- klasa vs pseudo elementu wyróżnieniem.
Z wyjątkiem ::first-line, ::first-letter, ::beforei ::after(co było wokół chwilę i może być używany z pojedynczymi dwukropkami jeśli wymagają wsparcia IE8), pseudo- elementy wymagają podwójnych średników.
Pseudoklasy same wybierają rzeczywiste elementy, możesz na przykład użyć :first-childlub :nth-of-type(n)do wybrania pierwszych lub konkretnych elementów w elemencie <p>div.
(A także stany rzeczywistych elementów, takich jak :hoveri :focus.)
Pseudoelementy dotyczą podrzędnej części elementu, takiej jak ::first-linelub ::first-letter, rzeczy, które same w sobie nie są elementami.
Właściwie lepszy opis tutaj: http://bricss.net/post/10768584657/know-your-lingo-pseudo-class-vs-pseudo-element
Również tutaj: http://www.evotech.net/blog/2007/ 05 / po-v-po-czym-jest-notacja-dwukropka /
:afteri ::afterzamiennie z identycznym zachowaniem, z wyjątkiem IE8, który, jak zauważa pytanie, wymaga pojedynczego dwukropka.
Selektory CSS, podobnie jak ::afterniektóre elementy wirtualne, nie są dostępne jako jawny element w drzewie DOM. Nazywane są „ Pseudo-Elementami ” i służą do wstawiania treści przed / po elemencie (np.: ::before, ::after) Lub do zaznaczania części elementu (np ::first-letter.:). Obecnie jest tylko 5 Standardowe elementy pseudo: after, before, first-letter, first-line, selection.
Z drugiej strony, istnieją inne rodzaje selektorów zwanych „ pseudo-klas ”, które są wykorzystywane do definiowania specjalny stan elementu (jak jak :hover, :focus, :nth-child(n)). Będą one wybierać cały istniejący element w DOM. Pseudoklasy to długa lista zawierająca ponad 30 pozycji.
Początkowo (w CSS2 i CSS1) składnia z pojedynczym dwukropkiem była używana zarówno dla pseudoklas, jak i pseudoelementów. Ale w CSS3 ::składnia zastąpiła :notację dla pseudoelementów, aby lepiej je rozróżnić.
W celu zachowania kompatybilności wstecznej, dla pseudoelementów, takich jak as, akceptowana jest stara składnia dwukropka :after(wszystkie przeglądarki nadal obsługują starą składnię z jednym średnikiem). Tylko IE-8 nie obsługuje nowej składni (użyj dwukropka, jeśli chcesz obsługiwać IE8).