Dado que IE7 e IE8 no admiten la notación de dos puntos para pseudoelementos (por ejemplo, ::after
o ::first-letter
), y dado que los navegadores modernos admiten la notación de dos puntos (por ejemplo :after
) para compatibilidad con versiones anteriores, ¿debería usar únicamente la notación de dos puntos y cuándo La cuota de mercado de IE8 cae a un nivel insignificante. ¿Volver y buscar / reemplazar en mi código base? O debería incluir ambos:
.foo:after,
.foo::after { /*styles*/ }
Usar doble solo parece una tontería si me preocupan los usuarios de IE8 (los pobres queridos).
Desde CSS3 Selectors REC :
Parece que está seguro al usar (solo) la notación de dos puntos para pseudoelementos que ya existían en CSS2.1, ya que los AU deben ser compatibles con versiones anteriores.
fuente
No estoy absolutamente de acuerdo con @mddw y @FelipeAls, en lo que respecta a considerar el uso de dos puntos como "seguro".
Esta mentalidad de "lo usaré aunque esté en desuso" es exactamente la razón por la que las tecnologías basadas en navegadores son tan lentas para avanzar y progresar.
SÍ, queremos mantener la compatibilidad con los estándares antiguos. Seamos realistas, es la mano que nos han repartido. PERO, esto no significa que tenga una excusa para ser vago en su desarrollo, ignorando los estándares actuales a favor de los obsoletos.
Nuestro objetivo debe ser mantener el cumplimiento de los estándares actuales, al mismo tiempo que se admite la mayor parte posible del estándar heredado.
Si se usan pseudo-elementos
:
en CSS2 y::
en CSS3, no deberíamos usar uno u otro; deberíamos usar ambos .Para responder completamente a la pregunta original formulada, el siguiente es el método más apropiado para respaldar la implementación más actual de CSS (versión 3), mientras se conserva el soporte heredado para la versión 2.
fuente
::
. De acuerdo con su enfoque, los individuos comenzarán a mezclar y combinar el uso de:
y::
para pseudo-elementos. Adherirse explícitamente al estándar antiguo (que por el momento puede ser compatible) es una práctica inherentemente mala y debe evitarse siempre que sea razonablemente posible. Si no está de acuerdo con esa afirmación, simplemente tenemos diferentes puntos de vista.Sin embargo, se ha vuelto cada vez más popular usar polyfills tanto para el nuevo javascript como para CSS, por lo que es posible que desee seguir usando la
::
sintaxis más reciente de dos puntos ( ) y mantener un polyfill para navegadores más antiguos, siempre que sea necesario.fuente
Por lo que vale, según Browser Stats, IE 8.0 se ha reducido a menos del 1% en los EE. UU. Durante el año pasado.
http://gs.statcounter.com/browser-version-partially-combined-market-share/desktop/united-states-of-america/#monthly-201512-201612
En diciembre de 2015, IE 8.0 tenía el 2,92% del mercado. En diciembre de 2016 IE 8.0 tenía .77% del mercado.
A ese ritmo de disminución, no sería la peor idea dejar de admitir versiones antiguas de IE y comenzar a usar :: para Pseudo Elementos.
fuente
Incluir ambas notaciones es ciertamente más seguro, pero no puedo ver que ningún navegador descarte la notación única durante mucho tiempo, por lo que solo una sola estará bien (es CSS2 válido).
Personalmente, solo uso la notación de dos puntos, principalmente por hábito.
fuente