Что означает двойной двоеточие (::) в CSS?

Что означает двойной двоеточие (::) в CSS?

Например:

input[type=text]::-ms-clear { display: none; }

Ответ 1

Это означает селектор псевдоэлементов. Это означает, что элемент справа не существует в обычном DOM, но может быть выбран.

Псевдоэлемент состоит из двух двоеточий (::), за которым следует имя псевдоэлемента.

Источник

Первоначально это был только один двоеточие, но был изменен, чтобы отличать его от псевдо классов (например, :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.