Czy jest jakaś funkcjonalna różnica między CSS 2.1 :after
a ::after
pseudo-selektorami CSS 3 (poza ::after
tym, że nie są obsługiwane w starszych przeglądarkach)? Czy jest jakiś praktyczny powód, aby używać nowszej specyfikacji?
źródło
Czy jest jakaś funkcjonalna różnica między CSS 2.1 :after
a ::after
pseudo-selektorami CSS 3 (poza ::after
tym, że nie są obsługiwane w starszych przeglądarkach)? Czy jest jakiś praktyczny powód, aby używać nowszej specyfikacji?
To pseudo- klasa vs pseudo elementu wyróżnieniem.
Z wyjątkiem ::first-line
, ::first-letter
, ::before
i ::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-child
lub :nth-of-type(n)
do wybrania pierwszych lub konkretnych elementów w elemencie <p>
div.
(A także stany rzeczywistych elementów, takich jak :hover
i :focus
.)
Pseudoelementy dotyczą podrzędnej części elementu, takiej jak ::first-line
lub ::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 /
:after
i::after
zamiennie z identycznym zachowaniem, z wyjątkiem IE8, który, jak zauważa pytanie, wymaga pojedynczego dwukropka.Selektory CSS, podobnie jak
::after
niektó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).źródło