The pseudo-element selectors (or ::before and ::after) are used to generate content on the fly for browsers, and the results are called generated content. The generated content does not belong to the document's DOM, and thus is invisible to devices like screen readers.

How to write ::before / ::after inside anchor tag Asked 9 years, 7 months ago Modified 3 years ago Viewed 17k times

How to write ::before / ::after inside anchor tag - Stack Overflow

MSN: After 3 Weeks of Hands-On Testing, Here Are Best Concrete Sealers to Protect Against Stains

After 3 Weeks of Hands-On Testing, Here Are Best Concrete Sealers to Protect Against Stains

MSN: How to spot a fake social media profile before you get scammed

How to spot a fake social media profile before you get scammed

The ::before notation (with two colons) was introduced in CSS3 in order to establish a discrimination between pseudo-classes and pseudo-elements. Browsers also accept the notation :before introduced in CSS 2.

Hence, a:hover::before and a:visited::before. But if you're developing for legacy browsers such as IE8 and older, then you can get away with using single colons just fine. This specific order of pseudo-classes and pseudo-elements is stated in the spec: One pseudo-element may be appended to the last sequence of simple selectors in a selector.