: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
Report problems with this compatibility data on GitHubdesktop | mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
:first-of-type |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- See implementation notes.
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.