CSS Pseudo-classes
CSS Pseudo-classes
A CSS pseudo-class is a keyword that can be added to a selector, to define a style for a special state of an element.
Some common use for pseudo-classes:
- Style an element when a user moves the mouse over it
- Style visited and unvisited links differently
- Style an element when it gets focus
- Style valid/invalid/required/optional form elements
- Style an element that is the first child of its parent
Syntax
Pseudo-classes are always denoted by a single colon (:) followed by the pseudo-class name:
selector:pseudo-class-name {
CSS properties
}
Here we use the :hover
pseudo-class and the
:focus
pseudo-class:
Mouse Over Me
Pseudo-classes Used on Links
For HTML links, it is common to use the following pseudo-classes:
:link
- Styles unvisited links:visited
- Styles visited links:hover
- Styles an link on mouse over:active
- Styles an activated link
Example
Display links in different colors depending on state:
/* unvisited link */
a:link {
color: #FF0000;
}
/* visited
link */
a:visited {
color: #00FF00;
}
/* mouse over link */
a:hover {
color: #FF00FF;
}
/* selected link */
a:active {
color: #0000FF;
}
Try it Yourself »
Note: a:hover
MUST come after a:link
and
a:visited
in the CSS definition in order to be effective! a:active
MUST come after
a:hover
in the CSS definition in order to be effective!
Pseudo-class names are not case-sensitive.
:hover on <div>
Here is an example of using the
:hover
pseudo-class on a <div> element:
:focus on <input>
Here is an example of using the
:focus
pseudo-class to
style an input field when it gets focus:
Pseudo-classes and HTML Classes
Pseudo-classes can easily be combined with HTML classes:
Example
Add a :hover pseudo-class to the <a> element with class "highlight":
a.highlight:hover {
color: #ff0000;
}
Try it Yourself »
Simple Tooltip Hover
Hover over a <div> element to show a <p> element (like a tooltip):
Tada! Here I am!
Example
p {
display: none;
background-color: yellow;
padding: 20px;
}
div:hover p {
display: block;
}
Try it Yourself »
The CSS :first-child Pseudo-class
The :first-child
pseudo-class matches a specific element that is the first child of another element.
Style all first child <p> elements
In the following example, the selector matches all <p> elements that is the first child of any element:
Style the first <em> element in all <p> elements
In the following example, the selector matches the first <em> element in all <p> elements:
Style all <em> elements in all first child <p> elements
In the following example, the selector matches all <em> elements in <p> elements that are the first child of another element:
The CSS :lang() Pseudo-class
The :lang()
pseudo-class
is used to select elements with a lang attribute with the specified value.
Example
Define the quotation marks for <q> elements with lang="no":
<html>
<head>
<style>
q:lang(no) {
quotes: "~" "~";
}
</style>
</head>
<body>
<p>Some text <q lang="no">A quote in a paragraph</q>
Some text.</p>
</body>
</html>
Try it Yourself »
CSS Pseudo-classes Reference
For a complete list of all CSS Pseudo-classes, visit our CSS Pseudo-classes Reference.