: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-typeCSSpseudo-class represents the first element of its type (tag name) among a group of sibling elements.
In this article
Try it
dt { font-weight: bold;}dd { margin: 3px;}dd:first-of-type { border: 2px solid orange;}<dl> <dt>Vegetables:</dt> <dd>1. Tomatoes</dd> <dd>2. Cucumbers</dd> <dd>3. Mushrooms</dd> <dt>Fruits:</dt> <dd>4. Apples</dd> <dd>5. Mangos</dd> <dd>6. Pears</dd> <dd>7. Oranges</dd></dl>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 theuniversal 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> |