:first-of-type
Селектор в CSS позволяет целевой первое вхождение элемента в пределах его контейнера. Он определен в спецификации CSS Selectors Level 3 как «структурный псевдокласс», что означает, что он используется для стилизации контента на основе его отношений с родительским и родственным контентом.
Допустим, у нас есть статья с заголовком и несколькими абзацами:
Paragraph 1.
Paragraph 2.
Paragraph 3.
Мы хотим сделать первый абзац больше, как своего рода «lede» или вступительный абзац. Вместо того, чтобы давать ему класс, мы можем использовать его :first-of-type
для его выбора:
p:first-of-type ( font-size: 1.25em; )
Использование :first-of-type
очень похоже на, :nth-child
но с одним важным отличием: оно менее специфично. В приведенном выше примере, если бы мы использовали p:nth-child(1)
, ничего бы не произошло, потому что абзац не является первым дочерним элементом своего родителя (the ). В этом проявляется сила
:first-of-type
: он нацелен на определенный тип элемента в определенном расположении по отношению к аналогичным братьям и сестрам, а не ко всем братьям и сестрам.
Более полный пример ниже демонстрирует использование :first-of-type
и связанный с ним селектор псевдокласса :last-of-type
.
Посмотрите на эту ручку!
Поддержка браузера
Хром | Сафари | Fire Fox | Опера | IE | Android | iOS |
---|---|---|---|---|---|---|
Работает | 3.2+ | Работает | 9.5+ | 9+ | Работает | Работает |
:first-of-type
был представлен в модуле CSS Selectors Module 3, что означает, что старые версии браузеров его не поддерживают. Однако поддержка современных браузеров безупречна, а новые псевдоселекторы широко используются в производственных средах. Если вам требуется поддержка старых версий браузера, используйте polyfill для IE или используйте эти селекторы некритическими способами, например, с прогрессивным улучшением, что рекомендуется.