Псевдокласи
Псевдоклас CSS – це ключове слово, додане до селектора, що дає змогу стилізувати конкретний стан вибраного елемента (чи елементів). Наприклад, псевдоклас :hover
може використовуватися для кнопки, коли вказівник користувача наведено на неї, і ця вибрана кнопка може бути стилізована.
/* Будь-яка кнопка, над якою перебуває вказівник користувача */
button:hover {
color: blue;
}
Псевдоклас складається з двокрапки (:
), після якої стоїть назва псевдокласу (наприклад, :hover
). Функційні псевдокласи також вміщають пару дужок для визначення своїх аргументів (наприклад, :dir()
). Елемент, до якого прикріплено псевдоклас, визначається як якірний елемент (наприклад, button
у випадку button:hover
).
Псевдокласи дають змогу застосовувати стиль до елемента не лише на основі вмісту дерева документа, а й також на основі зовнішніх чинників, як от: історії навігатора (наприклад, :visited
), стану його вмісту (наприклад, :checked
для деяких елементів форми) або положення миші (наприклад, :hover
, який дозволяє визначити, чи перебуває миша над елементом, чи ні).
[!NOTE] На противагу псевдокласам, псевдоелементи можуть використовуватися для стилізації конкретної частини елемента.
Псевдокласи стану виведення елементів
Завдяки цим псевдокласам можливий вибір елементів на основі стану їхнього виведення.
:fullscreen
Дає збіг з елементами, що наразі перебувають у повноекранному режимі.
:modal
Дає збіг з елементами, що перебувають у стані, в якому вони виключають взаємодію з елементами поза ними, поки їхня власна взаємодія не буде закінчена.
:picture-in-picture
Дає збіг з елементами, що наразі перебувають у стані картинки-в-картинці.
Псевдокласи полів
Ці псевдокласи стосуються елементів форми та дають змогу вибирати елементи на основі атрибутів HTML і стану, який поле має до та після взаємодії.
:autofill
Дає збіг з елементами
<input>
, які автоматично заповнив браузер.:enabled
Представляє елемент користувацького інтерфейсу, що перебуває у ввімкненому стані.
:disabled
Представляє елемент користувацького інтерфейсу, що перебуває у вимкненому стані.
:read-only
Представляє елементи, що не можуть бути змінені користувачем.
:read-write
Представляє всі елементи, що можуть бути змінені користувачем.
:placeholder-shown
Дає збіг з елементом-полем, що виводить текст заповнювача. Наприклад, він дасть збіг з атрибутом
placeholder
елементів<input>
і<textarea>
.:default
Дає збіг з одним або багатьома елементами користувацького інтерфейсу, що є усталеними серед свого набору.
:checked
Дає збіг, коли елементи штибу полів для галочки та радіокнопок – увімкнені.
:indeterminate
Дає збіг з елементами користувацького інтерфейсу, коли вони перебувають у невизначеному стані.
:blank
Дає збіг з елементами користувацького інтерфейсу, що є порожніми, вміщаючи порожній рядок або інший нульовий вміст.
:valid
Дає збіг з елементами, що мають дійсний вміст. Наприклад, елемент-поле з типом 'email', що вміщає коректно сформовану адресу електронної пошти, чи порожнє значення, якщо цей контрольний елемент є необов'язковим.
:invalid
Дає збіг з елементами, що мають недійсний вміст. Наприклад, елемент-поле з типом 'email', у який ввели ім'я.
:in-range
Застосовується до елементів, що мають обмеження діапазону. Наприклад, елемента-повзуна, коли вибране значення перебуває в дозволеному діапазоні.
:out-of-range
Застосовується до елементів, що мають обмеження діапазону. Наприклад, елемента-повзуна, коли вибране значення перебуває поза межами дозволеного діапазону.
:required
Дає збіг, коли елемент форми є обов'язковим.
:optional
Дає збіг, коли елемент форми є необов'язковим.
:user-valid
Представляє елемент із коректним введенням, але лише тоді, коли користувач уже з ним взаємодіяв.
:user-invalid
Представляє елемент з некоректним введенням, але лише тоді, коли користувач взаємодіяв з цим полем.
Лінгвістичні псевдокласи
Ці псевдокласи відображають мову документа та дають змогу вибирати елементи на основі мови або напрямку письма.
:dir()
Псевдоклас напрямку вибирає елементи на основі їхнього напрямку письма, визначеного мовою документа.
:lang()
Вибирає елементи на основі мови їхнього вмісту.
Псевдокласи місця
Ці псевдокласи стосуються посилань, а також цільових елементів у поточному документі.
:any-link
Дає збіг з елементом, якщо він дає збіг або з
:link
, або з:visited
.:link
Дає збіг з посиланнями, що ще не були відвідані.
:visited
Дає збіг з посиланнями, що вже були відвідані.
:local-link
Дає збіг з посиланнями, чий абсолютний URL – такий же, як цільовий URL. Наприклад, посилання-якорі на ту саму сторінку.
:target
Дає збіг з елементами, чия ціль – URL документа.
:target-within
Дає збіг з елементами, що є ціллю URL документа, а також елементами, що мають нащадка, який є ціллю URL документа.
:scope
Представляє елементи, що є опорною точкою, відносно якої відбувається вибірка елементів.
Псевдокласи стану ресурсів
Ці псевдокласи застосовуються до мультимедійних елементів, що здатні мати стан, що описується як відтворення, наприклад, відео.
:playing
Представляє мультимедійний елемент, здатний відтворюватися, коли цей елемент відтворюється.
:paused
Представляє мультимедійний елемент, здатний відтворюватися, коли цей елемент призупинений.
Псевдокласи часового виміру
Ці псевдокласи застосовуються, коли переглядається щось, що має хронометраж, наприклад, доріжка субтитрів WebVTT.
:current
Представляє елемент або його предка, що відображається.
:past
Представляє елемент, що повністю передує елементу
:current
.:future
Представляє елемент, що повністю слідує за елементом
:current
.
Псевдокласи деревної структури
Ці псевдокласи стосуються положення елемента в межах дерева документа.
:root
Представляє елемент, що є коренем документа. У HTML це зазвичай елемент
<html>
.:empty
Представляє елементи, що не мають нащадків, крім пробільних символів.
:nth-child
Використовує запис
An+B
для вибору елементів зі списку взаємно сестринських елементів.:nth-last-child
Використовує запис
An+B
для вибору елементів зі списку взаємно сестринських елементів, рахуючи з його кінця.:first-child
Дає збіг з елементом, що є першим серед своїх сестер.
:last-child
Дає збіг з елементом, що є останнім серед своїх сестер.
:only-child
Дає збіг з елементом, що не має сестер. Наприклад, пункт списку, в якому немає інших пунктів.
:nth-of-type
Використовує запис
An+B
для вибору елементів зі списку взаємно сестринських елементів, що мають певний тип.:nth-last-of-type
Використовує запис
An+B
для вибору елементів зі списку взаємно сестринських елементів, що мають певний тип, рахуючи з його кінця.:first-of-type
Дає збіг з елементом, що є першим серед своїх сестер, а також дає збіг з певним селектором типу.
:last-of-type
Дає збіг з елементом, що є останнім серед своїх сестер, а також дає збіг з певним селектором типу.
:only-of-type
Дає збіг з елементом, що не має сестер, які відповідали б обраному селекторові типу.
Псевдокласи користувацьких дій
Ці псевдокласи потребують певної взаємодії з боку користувача, щоб застосуватися, наприклад, утримання вказівника миші над елементом.
:hover
Дає збіг, коли користувач виділяє елемент за допомогою пристрою-вказівника, наприклад, утримує вказівник миші над елементом.
:active
Дає збіг, коли елемент активується користувачем. Наприклад, коли цей елемент клацнуто.
:focus
Дає збіг, коли елемент має фокус.
:focus-visible
Дає збіг, коли елемент має фокус, і агент користувача визначає, що елемент має бути візуально позначений як сфокусований.
:focus-within
Дає збіг з елементом, до якого застосовується
:focus
, а також з будь-яким елементом, що має нащадка, до якого застосовується:focus
.
Функційні псевдокласи
Ці псевдокласи приймають як параметр список селекторів або поблажливий список селекторів.
:is()
Псевдоклас збігу-з-чим-небудь дає збіг з усіма елементами, що дають збіг щонайменше з одним селектором з переданого списку. Цей список є поблажливим.
:not()
Псевдоклас заперечення, або збігу-ні-з-чим, представляє всі елементи, що не представлені його аргументом.
:where()
Псевдоклас підлаштування специфічності дає збіг з усіма елементами, що дають збіг з будь-яким з селекторів у переданому списку, не додаючи жодної ваги специфічності. Цей список є поблажливим.
:has()
Псевдоклас відношення представляє елемент, якщо будь-який з відносних селекторів дає збіг, коли він прив'язаний до приєднаного елемента.
Синтаксис
selector:pseudo-class {
property: value;
}
Подібно до звичайних класів, можна створювати ланцюжки з такої кількості псевдокласів, якої потрібно, в межах одного селектора.
Алфавітний покажчик
Серед псевдокласів, визначених набором специфікацій CSS:
A
B
C
D
E
F
H
I
L
M
N
O
P
R
S
T
U
V
W
Специфікації
Специфікація |
---|
HTML Standard (HTML) # pseudo-classes |
Selectors Level 4 (Selectors 4) |
CSS Basic User Interface Module Level 4 (CSS User Interface 4) |