Pseudo-element
A CSS pseudo-element represents a generated or abstracted part of an element that can be styled without adding a separate HTML element.
Common examples include ::before, ::after, ::first-letter and ::selection. Generated pseudo-elements are frequently used for decorative details.
Styling a generated part of an element
Common examples include ::before, ::after, ::first-letter and ::selection. Generated pseudo-elements are frequently used for decorative details. In practical terms, Pseudo-element belongs to the presentation and layout layer. Knowing that layer is important because it tells you what the term can change, what it cannot change, and where to look when something behaves unexpectedly.
Adding decoration with ::before or ::after
.tag::before can insert a decorative dot without adding another HTML element.
Where generated boxes are useful
You do not need to memorize the term in isolation. It becomes useful when you can recognize it in the tool, browser, file or conversation where the concept is doing real work.
Pseudo-elements are not real DOM elements
A CSS pseudo-element represents a generated or abstracted part of an element that can be styled without adding a separate HTML element. By contrast, A CSS pseudo-class selects an element based on state, position or another condition that is not expressed as a normal element attribute. The two can appear in the same project, but they describe different parts of the work and should not be used as interchangeable labels.
The mistake: putting essential content in decoration
The common mistake is to use Pseudo-element as if it also meant Pseudo-class. That blurs two separate decisions and usually sends troubleshooting in the wrong direction. A better test is practical: Do not put essential content only in generated pseudo-elements because accessibility and copying behavior can vary.
Why generated boxes should stay presentational
In day-to-day work, Pseudo-element matters when the concept needs to be identified precisely instead of being grouped with a nearby term. The practical value is not the vocabulary itself; it is being able to identify the right control, file, setting or decision when the concept becomes relevant.
.tag::before can insert a decorative dot without adding another HTML element. That example is useful because it turns the definition into something you can recognize, test and discuss with other people working on the same project.
Related terms worth learning next
Sources and further reading
Use these references when you need documentation-level detail, specifications or product-specific behavior beyond the plain-English explanation above.