Перейти к содержимому

Псевдокласс CSS :first-of-type

Псевдокласс CSS :first-of-type выбирает элемент, который является первым элементом своего типа среди своих родственных элементов. Он эквивалентен [:nth-of-type(1)](/learn-css/nth-of-type.html).

Пример псевдокласса CSS :first-of-type

Селектор :first-of-type часто сравнивают с :first-child, но они различаются по области применения. В то время как :first-child выбирает элемент на основе его позиции среди всех дочерних элементов независимо от типа, :first-of-type выбирает только в том случае, если элемент является первым среди родственных элементов одного типа. Оба селектора имеют одинаковую специфичность CSS.

DANGER

Начиная с уровня 4 спецификации Selectors, выбранному элементу не обязательно иметь родительский узел в DOM для соответствия.

Версия

Selectors Level 3

Selectors Level 4

Синтаксис

Синтаксис CSS :first-of-type

css
:first-of-type {
  css declarations;
}

Пример использования селектора :first-of-type:

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      p:first-of-type {
        background: #8ebf42;
      }
    </style>
  </head>
  <body>
    <h2>:first-of-type selector example</h2>
    <p>Paragraph 1</p>
    <p>Paragraph 2</p>
    <p>Paragraph 3</p>
  </body>
</html>

Пример использования селектора :first-of-type с тегом <article>:

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      p:first-of-type {
        font-size: 22px;
        color: #777777;
      }
    </style>
  </head>
  <body>
    <h2>:first-of-type selector example</h2>
    <article>
      <h2>This is a title.</h2>
      <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. </p>
      <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. .</p>
      <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. .</p>
    </article>
  </body>
</html>

Пример использования селектора :first-of-type с различными HTML-тегами:

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      p {
        margin: 0;
      }
      article:first-of-type {
        background-color: #777777;
        color: #ffffff;
      }
    </style>
  </head>
  <body>
    <h2>:first-of-type selector example</h2>
    <article>
      <p>This is a first element!</p>
      <p>This <em>nested 'em' is first</em>!</p>
      <p>This <strong>nested 'strong' is first</strong>, but this <strong>nested 'strong' is last</strong>!</p>
      <p>This <span>nested 'span' gets styled</span>!</p>
      <q>This is a 'q' element!</q>
      <p>This is a last element.</p>
    </article>
    <article>
      <p>This is a second article.</p>
    </article>
  </body>
</html>

Совместимость с браузерами

БраузерВерсия
Chrome1.0
Firefox1.0
Safari1.0
Edge12.0
Opera7.0
IE9.0

Practice

Каково правильное определение и применение псевдокласса CSS :first-of-type?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.