Definition and Usage
The :nth-child(an+b) CSS pseudo-class matches an element that has an+b-1 siblings before it in the document tree, for a given positive or zero value for n, and has a parent element.
This can more clearly be described this way: the matching element is the bth child of an element after all its children have been split into groups of a elements each.
The values a and b must both be integers, and the index of an element’s first child is 1.
In other words, this class matches all children whose index fall in the set { an + b; n = 0, 1, 2, … }.
Among other things, this allows selectors to match every other row in a table.
Syntax
element:nth-child(an + b) { style properties }
Examples
Example selectors
tr:nth-child(2n+1) - Represents the odd rows of an HTML table.
tr:nth-child(odd) - Represents the odd rows of an HTML table.
tr:nth-child(2n) - Represents the even rows of an HTML table.
tr:nth-child(even) - Represents the even rows of an HTML table.
span:nth-child(0n+1) - Represents a span element which is the first child of its parent; this is the same as the
:first-child selector. span:nth-child(1) - Equivalent to the above.
span:nth-child(-n+3) - Matches if the element is one of the first three children of its parent and also a span.
Odd Selector Example
2 | <span>This span is limed!</span> |
3 | <span>This span is not. :(</span> |
4 | <em>This one is odd. </em> |
5 | <span>Sadly, this one is not...</span> |
6 | <span>But this one is!</span> |
2 | background-color: lime; |
Compatibility
Desktop browsers
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
| Basic support | 1.0 | 3.5 (1.9.1) | 9.0 | 9.5 | 3.1 |
Mobile browsers
| Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
| Basic support | 2.1 | 1.0 (1.9.1) | 9.0 | 9.5 | 3.1 |