Ponieważ IE7 i IE8 nie obsługują notacji z podwójnym dwukropkiem dla pseudoelementów (np. ::after
Lub ::first-letter
), a ponieważ współczesne przeglądarki obsługują notację z pojedynczym dwukropkiem (np. :after
) W celu zapewnienia zgodności wstecznej, powinienem używać wyłącznie notacji z pojedynczym dwukropkiem i kiedy Udział w rynku IE8 spadł do znikomego poziomu, cofnąć się i znaleźć / zamienić w mojej bazie kodu? Czy powinienem uwzględnić oba:
.foo:after,
.foo::after { /*styles*/ }
Używanie samego podwójnego wydaje się głupie, jeśli zależy mi na użytkownikach IE8 (biedni kochani).
Z selektorów CSS3 REC :
Wygląda na to, że możesz bezpiecznie używać (tylko) notacji z jednym dwukropkiem dla pseudoelementów, które już istniały w CSS2.1, ponieważ UA muszą być kompatybilne wstecz.
źródło
Absolutnie nie zgadzam się z @mddw i @FelipeAls, jeśli chodzi o rozważenie użycia jednego dwukropka jako „bezpiecznego”.
Ta mentalność „Będę go używać, mimo że jest przestarzała”, jest dokładnie powodem, dla którego technologie oparte na przeglądarkach są tak powolne w rozwoju i posuwaniu naprzód.
TAK, chcemy zachować zgodność ze starymi standardami. Spójrzmy prawdzie w oczy, to ręka, którą otrzymaliśmy. ALE, nie oznacza to, że masz wymówkę, aby być leniwym w rozwoju, ignorując obecne standardy na rzecz przestarzałych.
Naszym celem powinno być utrzymanie zgodności z obecnymi standardami, przy jednoczesnym wspieraniu jak największej części dotychczasowego standardu.
Jeśli pseudoelementy są używane
:
w CSS2 i::
CSS3, nie powinniśmy używać jednego ani drugiego; powinniśmy używać obu .Aby w pełni odpowiedzieć na pierwotnie zadane pytanie, poniżej przedstawiono najbardziej odpowiednią metodę obsługi najnowszej implementacji CSS (wersja 3), przy jednoczesnym zachowaniu starszej obsługi wersji 2.
źródło
::
. Zgodnie z twoim podejściem, jednostki zaczną wtedy mieszać i dopasowywać użycie:
i::
dla pseudo-elementów. Wyraźne trzymanie się starego standardu (który na razie może być wspierany) jest z natury złą praktyką i należy go unikać, gdy tylko jest to rozsądnie możliwe. Jeśli nie zgadzasz się z tym stwierdzeniem, mamy po prostu różne poglądy.Jednak coraz popularniejsze staje się używanie polyfillów zarówno dla nowego javascript, jak i CSS, więc możesz po prostu trzymać się nowszej
::
składni dwukropka ( ) i zachować polyfill dla starszych przeglądarek, o ile jest to konieczne.źródło
Co to jest warte według Browser Stats IE 8.0 spadł do mniej niż 1% w USA w ciągu ostatniego roku.
http://gs.statcounter.com/browser-version-partually-combined-market-share/desktop/united-states-of-america/#monthly-201512-201612
W grudniu 2015 r. IE 8.0 posiadała 2,92% rynku. W grudniu 2016 r. IE 8.0 posiadała 0,77% rynku.
Przy takim tempie spadku nie byłoby najgorszym pomysłem zaprzestanie wspierania starszych wersji IE i rozpoczęcie używania :: for Pseudo Elements.
źródło
Uwzględnienie obu notacji jest z pewnością bezpieczniejsze, ale nie widzę żadnej przeglądarki porzucającej pojedynczą notację przez długi czas, więc tylko jedna notacja będzie w porządku (to prawidłowy CSS2).
Osobiście używam tylko notacji z pojedynczym dwukropkiem, głównie z przyzwyczajenia.
źródło