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:lang
pseudo-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: