Кратко
СкопированоПсевдокласс :past выбирает элементы, которые находятся до текущего активного состояния в временной последовательности.
Он используется в так называемых time-dimensional selectors — селекторах, которые работают с временем (например, в субтитрах или медиа).
Чаще всего встречается в контексте:
<video>- WebVTT субтитров
- временных треков
Пример
СкопированоВ этом примере скрываются уже “проигранные” субтитры:
:past(p, span) { display: none;}
:past(p, span) {
display: none;
}
<video controls> <track label="English" kind="subtitles" srclang="en" src="subtitles.vtt" default></video>
<video controls>
<track
label="English"
kind="subtitles"
srclang="en"
src="subtitles.vtt"
default>
</video>
Как пишется
СкопированоПсевдокласс :past используется как обычный селектор:
:past { /* стили для элементов в прошлом */}
:past {
/* стили для элементов в прошлом */
}
Также может комбинироваться с другими селекторами:
video::cue(:past) { opacity: 0.5;}
video::cue(:past) {
opacity: 0.5;
}
Как понять
СкопированоВременные медиапотоки (например, субтитры) делятся на состояния:
:past позволяет стилизовать элементы, которые уже прошли в потоке воспроизведения.
Это полезно для:
- затемнения уже прочитанных субтитров
- визуализации прогресса текста
- создания эффектов “истории воспроизведения”
Подсказки
Скопировано💡 Чаще всего :past используется вместе с :current и :future, чтобы создать визуальную шкалу времени.
💡 Работает только в специфических контекстах (например, WebVTT), а не для обычных HTML-элементов.
💡 Поддержка ограничена — многие браузеры не реализуют time-dimensional pseudo-classes полностью.
- Chrome 23, поддерживается
- Edge 79, поддерживается
- Firefox, не поддерживается
- Safari 7, поддерживается