CSS Pseudo-classes


What are Pseudo-classes?

A pseudo-class is used to define a special state of an element.

For example, it can be used to:

  • 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, or optional form elements

:hover Effect on Button

:focus and :valid / :invalid on Input


Syntax

The syntax of pseudo-classes:

selector:pseudo-class { property: value; }


Anchor Pseudo-classes

Links can be displayed in different ways using anchor pseudo-classes such as:

Output :

Pseudo-classes and HTML Classes

Pseudo-classes can be combined with HTML classes:

When you hover over the link in the example, it will change color:

Output :

Hover on <div>

An example of using the :hover pseudo-class on a <div> element:

Output 3:

Simple Tooltip Hover

Hover over a <div> element to show a <p> element (like a tooltip):

Hover over me to show the <p> element.

Output :


CSS - The :first-child Pseudo-class

The :first-child pseudo-class matches a specified element that is the first child of another element.

Match the first <p> element

In the following example, the selector matches any <p> element that is the first child of any element:

Output:-:

Match the first <i> element in all <p> elements

In the following example, the selector matches the first <i> element in all <p> elements:

Output:-:

CSS - The :lang Pseudo-class

The :lang pseudo-class allows you to define special rules for different languages.

In the example below, :lang defines the quotation marks for <q> elements with lang="no":

Output :