Псевдоклас :first-of-type задає стиль першого елемента певного типу в групі братських елементів (що мають одного з батьків).
Як приклад розглянемо наступний код HTML:
<article> <h1>Роль цитокінів при дорсалгії</h1> <p>Автор: Гордон Фрімен, канд. фіз.-мат. наук</p> <p>Зміст статті</p> <address>Пошта: freemen@blackmesa.com</address> <p>Опубліковано: <time datetime="2018-11-27">27 листопада 2018</time></p> </article>
Псевдоклас :first-of-type без вказівки селектора вибере перші елементи кожного типу (<h1>, <p>, <address>, <time>) і встановить для них червоний колір тексту.
article :first-of-type { color: red; }При додаванні селектора до :first-of-type спочатку вибираються вказані елементи, потім з них береться перший елемент. Наявність інших елементів (<h1> та <address>) та їх порядок не враховуються.
article p:first-of-type { color: red; }Тут буде обрано перший абзац усередині <article> і виділено червоним кольором.
Замість :first-of-type можна використовувати :nth-of-type(1) .
Синтаксис
<code><i>Селектор</i>:first-of-type { ... } Позначення
| Опис | Приклад | |
|---|---|---|
| <тип> | Вказує тип значення. | <розмір> |
| A  ;&& B | Значення повинні виводитися в зазначеному порядку. | <размер> && <колір> |
| A | B | Вказує, що потрібно вибрати лише одне значення із запропонованих (A або B). | normal | small-caps |
| A || B | Кожне значення може використовуватися самостійно або спільно з іншими у довільному порядку. | width || count |
| [ ] | Групує значення. | [ crop || cross ] |
| * | Повторювати нуль або більше разів. | [,<час>]* |
| + | Повторювати один або більше разів. | <число>+ |
| ? | Вказаний тип, слово або група не є обов'язковим. | inset? |
| {A, B} | Повторювати не менше A, але не більше B разів. | <радіус>{1,4} |
| # | Повторювати один або більше разів через кому. | <час># |
Приклад
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>first-of-type</title> <style> table { border-collapse: collapse; /* Забираємо подвійні межі */
width: 100%; /* Ширина таблиці */
border-spacing: 0; /* Відстань між осередків */
}
td { border: 1px solid #6A3E14; /* Параметри рамки */
padding: 4px; /* Поля в осередках */
}
tr:first-of-type { background: #808990; /* Колір тла */
color: #fff; /* Колір текст */
}
td:first-of-type { background: #CFD6D3; /* Колір тла */
}
</style>
</head>
<body> <table> <tr> <td> </td><td>1998</td><td>1999</td><td>2000</t/t <td>2002</td><td>2003</td>
</tr> <tr> <td>Нафта</td> <td>3</td><td>22</td><td>34</td><td>62</td><&tt ;/td>
</tr> <tr> <td>Золото</td> <td>4</td><td>13</td><td>69</td><td>72</td><&t ;/td>
</tr> <tr> <td>Дерево</td> <td>4</td><td>7</td><td>73</td><td>79</td><td&tt ;/td>
</tr>
</table>
</body>
</html>Результат цього прикладу показано на мал. 1.

Мал. 1. Результат використання псевдокласу :first-of-type у таблиці
Специфікація
| Специфікація | Статус |
|---|---|
| Selectors Level 4 | Робочий проект |
| Selectors Level 3 | Рекомендація |
Специфікація
Кожна специфікація проходить кілька стадій схвалення.
- Recommendation ( Рекомендація) — специфікація схвалена W3C і рекомендована як стандарт.
- Candidate Recommendation (Можлива рекомендація) — група, яка відповідає за стандарт, задоволена, як він відповідає своїм цілям, але потрібна допомога спільноти розробників з реалізації стандарту.) — на цьому етапі документ представлений на розгляд Консультативної ради W3C для остаточного затвердження. та внесення поправок для розгляду спільнотою.
- Editor's draft (Редакторська чернетка) — чорнова версія стандарту після внесення змін до редакторів проекту.
- Draft (Чернетка специфікації) — перша чорнова версія стандарту.
Браузери
| 9 | 12 | 1 | 9.5 | 3.2 | 3.5 |
| 2.1 | 1 | 10 | 3.2 |
Браузери
У таблиці браузерів застосовуються такі позначення.
- — властивість повністю підтримується браузером з усіма допустимими значеннями;
- — властивість браузером не сприймається та ігнорується;
- — при роботі можлива поява різних помилок, або властивість підтримується лише частково, наприклад, не всі допустимі знання акції діють або властивість застосовується не до всіх елементів, які вказані в специфікації.
