What are CSS Pseudo-classes?
Pseudo-classes are predefined keywords.
They are used to select an element based on its state or to target a specific child.
They start with a single colon :.
The most common use case is to style the visited and unvisited links. Also, focus or hover over an element.
- The :hover pseudo-class
- CSS – The :lang Pseudo-class
- The :visited pseudo-class
- The :nth-child pseudo-class
- CSS classes and pseudo-classes
The popular pseudo-classes are:
| Classes | Description |
:active |
an element is activated by the user (e.g. clicked). Mostly used on links or buttons |
:checked |
a checkbox, option, or radio input types that are enabled |
:default |
the default in a set of choices (like an option in a select or radio buttons) |
:disabled |
an element disabled |
:empty |
an element with no children |
:enabled |
an element that’s enabled (opposite to :disabled) |
:first-child |
the first child of a group of siblings |
:focus |
the element with focus |
:hover |
an element hovered with the mouse |
:last-child |
the last child of a group of siblings |
:link |
a link that’s not been visited |
:not() |
any element not matching the selector passed. E.g. :not(span) |
:nth-child() |
an element matching the specified position |
:nth-last-child() |
an element matching the specific position, starting from the end |
:only-child |
an element without any siblings |
:required |
a form element with the required attribute set |
:root |
represents the html element. It’s like targeting html, but it’s more specific. |
:target |
the element matching the current URL fragment (for inner navigation in the page) |
:valid |
form elements that validated client-side successfully |
:visited |
a link that’s been visited |
Also Check:
The :hover pseudo-class
The below sample code shows how to use the :hover class to alter the color of links when we place a mouse pointer over that link. Feasible values could be any color name in any valid format.
<html>
<head>
<style type = "text/css">
a:hover {color: #FFCC00}
</style>
</head>
<body>
<a href = "">Bring Mouse Here</a>
</body>
</html>
CSS – The :lang Pseudo-class
The:langpseudo-class enables you to set special rules for various languages.
In the illustration below, :lang represents 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>
The :visited pseudo-class
We want to make a link color yellow, before and after the visit:
a,
a:visited,
a:active {
color: yellow;
}
The :nth-child pseudo-class
:nth-child() deserves a special mention. It can be used to target odd or even children with :nth-child(odd) and :nth-child(even).
It is commonly used in lists to color odd lines differently from even lines:
ul:nth-child(odd) {
color: green;
background-color: gray;
}
We can also use it to target the first 4 children of an element with :nth-child(-n+4). Or you can style 1 in every 7 elements with :nth-child(7n).
CSS classes and pseudo-classes
The classes in CSS can be connected with pseudo-classes. So, we can address it as-
Syntax
selector.class: pseudo-class {
property: value;
}
Let’s see the following example to understand the working of it:
<!DOCTYPE html>
<html>
<head>
<style>
body{
text-align:center;
}
div.hello:hover {
color: red;
font-size:40px;
}
</style>
</head>
<body>
<h1>CSS Classes and pseudo-classes</h1>
<h2>Move your cursor to the below text</h2>
<div class="hello">Hello World</p>
</body>
</html>
Output:














