Первоначально это был только один двоеточие, но был изменен, чтобы отличать его от псевдо классов (например, :hover, :first-child, :not и т.д.). Лучше использовать : для before и after псевдоэлементов, поскольку один двоеточие имеет лучшую поддержку браузера, а именно в более ранних версиях IE.
Ответ 2
Оператор :: указывает, что вы выбираете псевдоэлемент, который фактически не существует как элемент, но все еще может быть нацелен на стилизацию.
Пример этого включает несколько специфических для вендора реализаций, таких как пример -ms-clear, который вы предоставляете, большинство браузеров также имеют псевдоэлементы для стилей полос прокрутки и других собственных элементов пользовательского интерфейса, но также существует много предопределенные псевдоэлементы, которые могут быть указаны по практическим соображениям, например first-line и first-letter.
Псевдоэлементы :before и :after позволяют даже вставлять фактический контент на страницу с помощью CSS с помощью правила content.
Ответ 3
CSS3 изменяет способ выбора псевдоэлементов, поскольку W3C хотел отличить псевдоклассы типа a:visited от псевдоэлементов, таких как p::first-line. См. Расширенные селектора CSS.