Pseudo-classes describe an element state, such as :hover or :focus-visible. Pseudo-elements select a part of an element or create decorative content, such as ::first-letter and ::before. Visible keyboard focus helps people navigate without a mouse.
Read a rule first
A CSS declaration uses property: value;. The semicolon ends one declaration, and braces group declarations for the same selector. The browser reads rules from top to bottom. When several rules match one element, the cascade considers their source, selector specificity, and order.
<a class="action" href="#demo">Read lesson</a>
<p id="demo">Practice makes progress.</p>.action { color: #0369a1; }
.action:hover { color: #7c3aed; }
.action:focus-visible { outline: 3px solid #f59e0b; }
p::first-letter { font-size: 2rem; font-weight: 700; }Change one value at a time and watch the text, color, size, or position. This connects each declaration to a visible result. Browser developer tools show the result of the same matching process.
A useful checking order
- Confirm that the selector matches the intended HTML element.
- Check the property name, colon, value, and semicolon.
- Test narrow space, longer text, and keyboard use.
Live style lab: Pseudo-classes and pseudo-elements
Unlock the complete interactive lab, deeper explanations, and curated reference answers.
A common source of confusion
CSS changes presentation and layout; it does not change the meaning of the HTML. Keep meaningful HTML elements and style them, rather than choosing the wrong element only for its default appearance. Readability comes before decoration.
KNOWLEDGE QUIZ
Practice: build a pseudo-classes and pseudo-elements example
Write a small CSS rule set for the supplied HTML and verify each result in a browser preview.
- Keep the HTML content and semantic structure.
- Use selectors related to this lesson and write at least three declarations.
- Check text contrast and make sure no content is covered or clipped.
HTML structure
<a class="action" href="#demo">Read lesson</a>
<p id="demo">Practice makes progress.</p>