: после vs.:: после

Есть ли какая-либо функциональная разница между CSS 2.1 :after и псевдоселекторами CSS 3 ::after (кроме ::after не поддерживается в старых браузерах)? Есть ли практическая причина использовать новую спецификацию?

Ответ 1

Это псевдо- класс и псевдо- элемент.

За исключением ::first-line, ::first-letter, ::before и ::after (которые были вокруг немного и могут использоваться с единственными двоеточиями, если вам нужна поддержка IE8), псевдо- элементы требуют двойные двоеточия.

Псевдоклассы сами выбирают сами фактические элементы, вы можете использовать :first-child или :nth-of-type(n) для выбора первого или конкретного <p> в div, например.
(А также состояния действительных элементов, таких как :hover и :focus.)

Псевдоэлементы нацелены на подчасти элемента, такого как ::first-line или ::first-letter, вещи, которые сами по себе не являются элементами.


Собственно, лучшее описание здесь: http://bricss.net/post/10768584657/know-your-lingo-pseudo-class-vs-pseudo-element
Также здесь: http://www.evotech.net/blog/2007/05/after-v-after-what-is-double-colon-notation/