Da IE7 und IE8 die Doppelpunktnotation für Pseudoelemente (z. B. ::after
oder ::first-letter
) nicht unterstützen und moderne Browser :after
aus Gründen der Abwärtskompatibilität die Einzelpunktnotation (z. B. ) unterstützen, sollte ich nur die Einzelpunktnotation verwenden und wann Der Marktanteil von IE8 sinkt auf ein vernachlässigbares Niveau. Zurückgehen und in meiner Codebasis suchen / ersetzen? Oder sollte ich beides einschließen:
.foo:after,
.foo::after { /*styles*/ }
Double allein zu verwenden scheint albern, wenn ich mich um IE8-Benutzer (die armen Lieben) kümmere.
Von CSS3-Selektoren REC :
Es scheint, dass Sie sicher sind, (nur) die Ein-Doppelpunkt-Notation für Pseudoelemente zu verwenden, die bereits in CSS2.1 vorhanden waren, da UAs abwärtskompatibel sein müssen.
quelle
Ich bin absolut anderer Meinung als @mddw und @FelipeAls, wenn es darum geht, die Verwendung eines Doppelpunkts als "sicher" zu betrachten.
Diese "Ich werde es verwenden, obwohl es veraltet ist" -Mentalität ist genau der Grund, warum browserbasierte Technologien so langsam vorankommen und Fortschritte machen.
JA, wir möchten die Kompatibilität mit alten Standards beibehalten. Seien wir ehrlich, es ist die Hand, die uns gegeben wurde. ABER dies bedeutet nicht, dass Sie eine Entschuldigung dafür haben, in Ihrer Entwicklung faul zu sein, indem Sie die aktuellen Standards zugunsten veralteter Standards ignorieren.
Unser Ziel sollte es sein, die Einhaltung der aktuellen Standards aufrechtzuerhalten und gleichzeitig so viel wie möglich vom alten Standard zu unterstützen.
Wenn
:
Pseudoelemente in CSS2 und::
in CSS3 verwendet werden, sollten wir nicht das eine oder andere verwenden. wir sollten beide verwenden .Um die ursprünglich gestellte Frage vollständig zu beantworten, ist die folgende Methode am besten geeignet , um die aktuellste Implementierung von CSS (Version 3) zu unterstützen und gleichzeitig die Legacy-Unterstützung für Version 2 beizubehalten.
quelle
::
. Entsprechend Ihrem Ansatz beginnen Einzelpersonen dann, die Verwendung von:
und::
für Pseudoelemente zu mischen und anzupassen. Die explizite Einhaltung des alten Standards (der vorerst unterstützt werden kann) ist von Natur aus eine schlechte Praxis und sollte nach Möglichkeit vermieden werden. Wenn Sie mit dieser Aussage nicht einverstanden sind, vertreten wir einfach unterschiedliche Ansichten.Es wird jedoch immer beliebter, Polyfills sowohl für neues Javascript als auch für CSS zu verwenden. Daher möchten Sie möglicherweise nur die neuere Double-Colon (
::
) -Syntax verwenden und eine Polyfill für ältere Browser beibehalten, sofern dies erforderlich ist.quelle
Für das, was es laut Browser Stats wert ist, ist IE 8.0 in den USA im letzten Jahr auf weniger als 1% gefallen.
http://gs.statcounter.com/browser-version-partially-combined-market-share/desktop/united-states-of-america/#monthly-201512-201612
Im Dezember 2015 hatte IE 8.0 einen Marktanteil von 2,92% . Im Dezember 2016 hatte IE 8.0 Marktanteil von 0,77% .
Bei dieser Abnahmerate wäre es nicht die schlechteste Idee, alte IE-Versionen nicht mehr zu unterstützen und :: for Pseudo Elements zu verwenden.
quelle
Das Einfügen beider Notationen ist sicherlich sicherer, aber ich kann keinen Browser sehen, der die einzelne Notation für eine lange Zeit löscht, sodass nur eine einzige in Ordnung ist (es ist gültiges CSS2.)
Persönlich verwende ich nur die Einzelpunktnotation, meistens aus Gewohnheit.
quelle