:nth-of-type()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

:nth-of-type()lớp giả CSS khớp các phần tử dựa trên vị trí của chúng trong số các phần tử anh chị em cùng loại (tên thẻ).

Try it

dt {
  font-weight: bold;
}

dd {
  margin: 3px;
}

dd:nth-of-type(even) {
  border: 2px solid orange;
}
<dl>
  <dt>Vegetables:</dt>
  <dd>1. Tomatoes</dd>
  <dd>2. Cucumbers</dd>
  <dd>3. Mushrooms</dd>
  <dt>Fruits:</dt>
  <dd>4. Apples</dd>
  <dd>5. Mangos</dd>
  <dd>6. Pears</dd>
  <dd>7. Oranges</dd>
</dl>

Cú pháp

css
:nth-of-type(<An+B> | even | odd) {
  /* ... */
}

Tham số

Lớp giả :nth-of-type() nhận một đối số duy nhất, đại diện cho mẫu khớp các phần tử.

Xem :nth-child để có giải thích chi tiết hơn về cú pháp.

Ví dụ

Ví dụ cơ bản

HTML

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

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;
}

Kết quả

Note: Không có cách nào để chọn phần tử thứ n theo lớp bằng bộ chọn này. Bộ chọn chỉ xem xét loại phần tử khi tạo danh sách kết quả khớp. Tuy nhiên, bạn có thể áp dụng CSS cho một phần tử dựa trên vị trí :nth-of-type một lớp, như minh họa trong ví dụ trên.

Thông số kỹ thuật

Specification
Selectors Level 4
# nth-of-type-pseudo

Khả năng tương thích trình duyệt

Xem thêm