DEV Community

Cover image for Master useful CSS pseudo-classes

Master useful CSS pseudo-classes

Tapajyoti Bose
Freelancer || Blogger || Cross-Platform App Developer || Web Developer || Open Source Contributor
・2 min read

What are CSS pseudo-classes?

A CSS pseudo-class is a selector which specifies a specific state of the selected element. For example :hover enables the developer to target the state when an element is being hovered.

In this article, we will cover some helpful Pseudo Classes.


:hover is probably the most used pseudo-class in CSS. It selects the state of the element when the user hovers over it using a pointing device, like a mouse.

If you are looking to create the hover effect in the demo, you might like this article


:focus is used to select the state of an element when the user selects it. To use this pseudo-class, you need a selectable component, like a button or an input, or manually convert it to a tab-able element using tabindex.


:checked targets radio and checkbox inputs when they are checked or toggled.

Enabled and Disabled

:enabled and :disabled are employed to select the state of an input element when it is enabled and disabled.

Valid and Invalid

:valid and :invalid target input elements whose input text are valid and invalid.


The :root CSS pseudo-class matches the root element of a tree representing the document. In HTML, :root represents the <html> element and is identical to the selector html, except that its specificity is higher. It is frequently used to add CSS variables.

How to implement the Dark Mode is given in this article

First Child, Last Child and nth Child

:first-child, :last-child and :nth-child() targets a component if it is the first, last and the nth child of a parent element.

NOTE: :nth-child can be used as :first-child by using :nth-child(1)

First of Type, Last of Type, and nth of Type

:first-of-type, :last-of-type and :nth-of-type respectively selects the first, last and nth occurrence of a given element in the HTML body.

NOTE: :nth-of-type can be used as :first-of-type by using :nth-of-type(1)


  1. W3schools
  2. MDN Docs

Thanks for reading

Want to work together? Contact me on Upwork

Connect to me on:

Discussion (0)