Псевдоклас :only-of-type
Оновлено: 16.01.2023
Псевдоклас :only-of-type
Псевдоклас :only-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>
Псевдоклас :only-of-type без зазначення селектора вибере всі єдині елементи кожного типу всередині <article> і встановить для них червоний колір тексту. Тут єдиними є елементи <h1>, <address> і <time>.
article :only-of-type { color: red; }
Під час додавання селектора до :only-of-type спершу розглядається вказаний елемент, потім перевіряється, чи є він єдиним. Тут червоним кольором буде виділено заголовок, оскільки <h1> тільки один.
article h1:only-of-type { color: red; }
Якщо замість h1 використати селектор p, то нічого вибрано не буде, оскільки всередині <article> трапляється кілька абзаців і елемент <p> не є єдиним.
article p:only-of-type { color: red; }
Замість :only-of-type можна використовувати комбінації :first-of-type:last-of-type або :nth-of-type(1):nth-last-of-type(1).
Синтаксис
<i>Селектор</i>:only-of-type { ... }
Приклад
У прикладі псевдоклас :only-of-type застосовується до селектора img, у правилах стилю якого задається рамка червоного кольору для картинок. Сама рамка додається до зображень, які у своїх батьків (у цьому випадку це <p>) зустрічаються тільки один раз. У першому рядку повторюється два зображення, тому псевдоклас не діє, у другому рядку вставлено одне зображення, для нього :only-of-type і працює.