The :nth-of-type()
CSS pseudo-class matches elements based on their position among siblings of the same type (tag name).
Syntax
The nth-of-type
pseudo-class is specified with a single argument, which represents the pattern for matching elements.
See :nth-child
for a more detailed explanation of its syntax.
:nth-of-type(<an-plus-b> | even | odd) { /* ... */ }
Examples
Basic example
HTML
<div> <div>This element isn't counted.</div> <p>1st paragraph.</p> <p class="fancy">2nd paragraph.</p> <div>This element isn't counted.</div> <p class="fancy">3rd paragraph.</p> <p>4th paragraph.</p> </div>
CSS
/* Odd paragraphs */ p:nth-of-type(2n + 1) { color: red; } /* Even paragraphs */ p:nth-of-type(2n) { color: blue; } /* First paragraph */ p:nth-of-type(1) { font-weight: bold; } /* This will match the 3rd paragraph as it will match elements which are 2n+1 AND have a class of fancy. The second paragraph has a class of fancy but is not matched as it is not :nth-of-type(2n+1) */ p.fancy:nth-of-type(2n + 1) { text-decoration: underline; }
Result
Note: There is no way to select the nth-of-class using this selector. The selector looks at the type only when creating the list of matches. You can however apply CSS to an element based on :nth-of-type
location and a class, as shown in the example above.