Что означает двойной двоеточие (::) в 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.