Css :first-child pseudo class apply to an element if it is first sibling in all direct child elements of its parent. Here are some examples.
:first-child positive example
<style type="text/css" media="screen"> .foo > p:first-child { background-color:lightgreen; } </style> <div class="foo"> <p>p1</p> <p>p2</p> <p>p3</p> </div>
Few points to note:
- Here the :first-child pseudo class style applies to all
p
direct child elements of div of class foo. - To apply style to all direct child and descendant p elements we could have used
.foo p:first-child
. See more info at CSS direct child vs any descendant selector.
:first-child negative example
Here no p element is first child. So background color won’t be set.
<style type="text/css" media="screen"> .foo > p:first-child { background-color:lightgreen; } </style> <div class="foo"> <div>div1</div> <p>p1</p> <p>p2</p> <p>p3</p> </div>
:first-child – include nested child elements example
This example contains two p elements which fulfil first-child requirements.
<style type="text/css" media="screen"> .foo p:first-child { background-color:lightgreen; } </style> <div class="foo"> <p>p1</p> <p>p2</p> <div><p>in_div_p1</p><p>in_div_p2</p></div> <p>p3</p> </div>
:first-child – exclude nested child elements example
This example contains two p elements which fulfil first-child requirements. But since we are using .foo > p
, only direct p child elements are eligible for this style.
<style type="text/css" media="screen"> .foo > p:first-child { background-color:lightgreen; } </style> <div class="foo"> <p>p1</p> <p>p2</p> <p>p3</p> <div><p>in_div_p1</p><p>in_div_p2</p></div> </div>