:nth-of-type()
The :nth-of-type()
CSS pseudo-class matches elements of a given type (tag name), based on their position among a group of siblings.
/* Selects every fourth <p> element
among any group of siblings */
p:nth-of-type(4n) {
color: lime;
}
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.
Formal syntax
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.
Specifications
Specification | Status | Comment |
---|---|---|
Selectors Level 4 The definition of ':nth-of-type' in that specification. |
Working Draft | Matching elements are not required to have a parent. |
Selectors Level 3 The definition of ':nth-of-type' in that specification. |
Recommendation | Initial definition. |
Browser compatibility
BCD tables only load in the browser