:first-child

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

/* Selects any <p> element that is the first child of its parent element */
p:first-child {
  color: lime;
  background-color: black;
}

Note: As originally defined, the selected element had to have a parent. Beginning with Selectors Level 4, this is no longer required.

Syntax

:first-child

Examples

Example 1

HTML

<div>
  <p>This p is styled, as it is a p AND the first
     child of its parent.</p>
  <p>This p is not styled; it is not the first child!</p>
</div>
<div>
  <h2>This h2 is not styled; it is not a p!</h2>
  <p>This p is not styled; it is not the first child!</p>
</div>

CSS

p:first-child {
  color: lime;
  background-color: black;
  padding: 5px;
}

Result

Example 2 - Using a list

HTML

<ul>
  <li>List 1</li>
  <li>List 2</li>
  <li>List 3</li>
</ul>

CSS

li{
  color: blue;
}
li:first-child {
  color: green;
}

Result

Specifications

Specification Status Comment
Selectors Level 4
The definition of ':first-child' in that specification.
Working Draft Matching elements are not required to have a parent.
Selectors Level 3
The definition of ':first-child' in that specification.
Recommendation No change.
CSS Level 2 (Revision 1)
The definition of ':first-child' in that specification.
Recommendation Initial definition.

Browser compatibility

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support 4.0 (Yes) 3.0 (1.9) 7[1] 9.5 4
No parent required 57 ? 51 (51)[2] ? 44 ?
Feature Android Webview Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) 1.0 (1.9.1) 7[1] 10 3.1
No parent required 57 57 51.0 (51)[2] ? ? 44 ?

[1] Internet Explorer 7 doesn't update the styles when elements are added dynamically. In Internet Explorer 8, if an element is inserted dynamically by clicking on a link the first-child style isn't applied until the link loses focus.

[2] See bug 1300374.

See also