:first-of-type

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

The :first-of-type CSS pseudo-class represents the first element of its type among a group of sibling elements.

Try it

Syntax

css
:first-of-type {
  /* ... */
}

Examples

Styling the first paragraph

HTML

html
<h2>Heading</h2>
<p>Paragraph 1</p>
<p>Paragraph 2</p>

CSS

css
p:first-of-type {
  color: red;
  font-style: italic;
}

Result

Nested elements

This example shows how nested elements can also be targeted. Note that the universal selector (*) is implied when no type selector is written.

HTML

html
<article>
  <div>This `div` is first!</div>
  <div>This <span>nested `span` is first</span>!</div>
  <div>
    This <em>nested `em` is first</em>, but this <em>nested `em` is last</em>!
  </div>
  <div>This <span>nested `span` gets styled</span>!</div>
  <p>This `p` qualifies!</p>
  <div>This is the final `div`.</div>
</article>

CSS

css
article :first-of-type {
  background-color: pink;
}

Result

Specifications

Specification
Selectors Level 4
# first-of-type-pseudo

Browser compatibility

BCD tables only load in the browser

See also