¿Hay alguna diferencia funcional entre el CSS 2.1 :after
y los ::after
pseudo-selectores CSS 3 (aparte de que ::after
no es compatible con navegadores antiguos)? ¿Hay alguna razón práctica para usar la nueva especificación?
fuente
¿Hay alguna diferencia funcional entre el CSS 2.1 :after
y los ::after
pseudo-selectores CSS 3 (aparte de que ::after
no es compatible con navegadores antiguos)? ¿Hay alguna razón práctica para usar la nueva especificación?
Es pseudo- clase vs pseudo- elemento de distinción.
A excepción de ::first-line
, ::first-letter
, ::before
y ::after
(que han sido alrededor de un poco de tiempo y se puede utilizar con dos puntos individuales si necesita ayuda IE8), pseudo- elementos requieren dos puntos dobles.
Las pseudo-clases seleccionan elementos reales por sí mismos, puede usar :first-child
o :nth-of-type(n)
para seleccionar los primeros o específicos <p>
en un div, por ejemplo.
(Y también estados de elementos reales como :hover
y :focus
.)
Los seudoelementos se dirigen a una subparte de un elemento como ::first-line
o ::first-letter
, cosas que no son elementos por derecho propio.
En realidad, mejor descripción aquí: http://bricss.net/post/10768584657/know-your-lingo-pseudo-class-vs-pseudo-element
También aquí: http://www.evotech.net/blog/2007/ 05 / after-v-after-what-is-double-colon-notation /
:after
y::after
de manera intercambiable con un comportamiento idéntico con la excepción de Internet Explorer 8 que, como las notas de interrogación, requiere la única colon.Los selectores de CSS
::after
son algunos elementos virtuales que no están disponibles como elemento explícito en el árbol DOM. Se denominan " pseudo-elementos " y se utilizan para insertar algún contenido antes / después de un elemento (por ejemplo::before
,::after
) o seleccionar alguna parte de un elemento (por ejemplo:)::first-letter
. Actualmente hay sólo 5 pseudo elementos estándar:after, before, first-letter, first-line, selection
.Por otro lado, hay otros tipos de selectores llamados " pseudo-clases ", que se utilizan para definir un estado especial de un elemento (como como
:hover
,:focus
,:nth-child(n)
). Estos seleccionarán todo un elemento existente en DOM. Las pseudo clases son una larga lista con más de 30 elementos.Inicialmente (en CSS2 y CSS1), la sintaxis de dos puntos se utilizó para pseudo-clases y pseudo-elementos. Pero, en CSS3, la
::
sintaxis reemplazó la:
notación de pseudoelementos para distinguirlos mejor.Por compatibilidad con versiones anteriores, la antigua sintaxis de dos puntos es aceptable para pseudoelementos como as
:after
(los navegadores todavía admiten la sintaxis anterior con un punto y coma). Solo IE-8 no admite la nueva sintaxis (use dos puntos si desea admitir IE8).fuente