Поскольку IE7 и IE8 не поддерживают нотацию с двойным двоеточием для псевдоэлементов (например, ::after
или ::first-letter
), и поскольку современные браузеры поддерживают нотацию с одним двоеточием (например :after
) для обратной совместимости, должен ли я использовать только нотацию с одним двоеточием и когда Доля рынка IE8 упала до незначительного уровня, вернуться и найти / заменить в моей кодовой базе? Или я должен включить оба:
.foo:after,
.foo::after { /*styles*/ }
Использование только double кажется глупым, если мне небезразличны пользователи IE8 (бедняги).
источник
Из CSS3 Selectors REC :
Кажется, вы можете безопасно использовать (только) запись с одним двоеточием для псевдоэлементов, которые уже существовали в CSS2.1, поскольку UA должны быть обратно совместимы.
источник
Я абсолютно не согласен с @mddw и @FelipeAls в отношении использования одного двоеточия как «безопасного».
Этот менталитет «Я буду использовать его, даже если он устарел» - именно поэтому браузерные технологии так медленно развиваются и развиваются.
ДА, мы хотим сохранить совместимость со старыми стандартами. Посмотрим правде в глаза, это рука, которую мы получили. НО, это не означает, что у вас есть оправдание лениться в разработке, игнорируя текущие стандарты в пользу устаревших.
Наша цель должна состоять в том, чтобы поддерживать соответствие текущим стандартам, поддерживая при этом как можно больше унаследованных стандартов.
Если псевдоэлементы используются
:
в CSS2 и::
CSS3, мы не должны использовать ни один, ни другой; мы должны использовать оба .Чтобы полностью ответить на исходный вопрос, приведу следующий наиболее подходящий метод поддержки самой последней реализации CSS (версия 3) при сохранении унаследованной поддержки версии 2.
источник
::
. В соответствии с вашим подходом, люди затем начнут смешивать и согласовывать использование псевдоэлементов:
и::
для них. Явное соблюдение старого стандарта (который в настоящее время может поддерживаться) является по своей сути плохой практикой, и ее следует избегать, когда это возможно. Если вы не согласны с этим утверждением, мы просто придерживаемся разных взглядов.Однако становится все более популярным использование полифилов как для нового javascript, так и для CSS, поэтому вы можете просто придерживаться нового
::
синтаксиса с двойным двоеточием ( ) и поддерживать полифилы для старых браузеров, если это необходимо.источник
Согласно статистике браузера, IE 8.0 упал до менее 1% в США за последний год.
http://gs.statcounter.com/browser-version-parfully-combined-market-share/desktop/united-states-of-america/#monthly-201512-201612
В декабре 2015 года IE 8.0 занимал 2,92% рынка. В декабре 2016 года IE 8.0 занимал 0,77% рынка.
При таких темпах снижения было бы не самой плохой идеей прекратить поддержку старых версий IE и начать использовать :: for Pseudo Elements.
источник
Включение обеих нотаций, безусловно, безопаснее, но я не вижу, чтобы какой-либо браузер долгое время отбрасывал одну нотацию, поэтому только одна будет в порядке (это действительный CSS2).
Лично я использую только запись с одним двоеточием, в основном по привычке.
источник