A CSS pseudo-class is a keyword added to a selector that specifies a special state of the selected element(s). For example, the pseudo-class :hover
can be used to select a button when a user's pointer hovers over the button and this selected button can then be styled.
/* Any button over which the user's pointer is hovering */ button:hover { color: blue; }
A pseudo-class consists of a colon (:
) followed by the pseudo-class name (e.g., :hover
). A functional pseudo-class also contains a pair of parenthesis to define the arguments (e.g., :dir()
). The element that a pseudo-class is attached to is defined as an anchor element (e.g., button
in case button:hover
).
Pseudo-classes let you apply a style to an element not only in relation to the content of the document tree, but also in relation to external factors like the history of the navigator (:visited
, for example), the status of its content (like :checked
on certain form elements), or the position of the mouse (like :hover
, which lets you know if the mouse is over an element or not).
Note: In contrast to pseudo-classes, pseudo-elements can be used to style a specific part of an element.