css :after vs ::after code example
Example: difference between :after and ::after
Pseudo-elements were denoted with a single colon in CSS2,
but have been changed in CSS3
"in order to establish a discrimination between
pseudo-classes and pseudo-elements".
For compatibility reasons a single colon is still allowed for the
pseudo-elements defined in CSS 1 and CSS2.
CSS2
The ':before' and ':after' pseudo-elements can be used to
insert generated content before or after an element's content.
CSS3
Pseudo-elements
A pseudo-element is made of two colons (::) followed by
the name of the pseudo-element.
This :: notation is introduced by the current document in order
to establish a discrimination between pseudo-classes and pseudo-elements.
For compatibility with existing style sheets, user agents must also
accept the previous one-colon notation for pseudo-elements introduced in
CSS levels 1 and 2 (namely, :first-line, :first-letter, :before and :after).
This compatibility is not allowed for the new pseudo-elements introduced in
this specification.