Кратко
Скопировано:picture
— CSS‑псевдокласс, который совпадает с элементом <video>
, если он сейчас вынесен в отдельное маленькое окно «картинка в картинке» (PiP). Это удобно, чтобы менять оформление видео или скрывать кастомные элементы управления, когда ролик в PiP.
Пример
СкопированоНиже видео. При реальном PiP к нему применятся стили. В демке есть «мок» — можно включить превью оформления без вызова PiP.
Как пишется
Скопировано/* Подсветить видео, которое сейчас в PiP */video:picture-in-picture { outline: 2px solid #2E9AFF; outline-offset: 6px;}/* Спрятать свои контролы, когда видео в PiP */.controls:has(+ video:picture-in-picture) { display: none;}/* Или наоборот — показывать уведомление на странице */.pip-indicator { display: none;}video:picture-in-picture ~ .pip-indicator { display: block;}
/* Подсветить видео, которое сейчас в PiP */ video:picture-in-picture { outline: 2px solid #2E9AFF; outline-offset: 6px; } /* Спрятать свои контролы, когда видео в PiP */ .controls:has(+ video:picture-in-picture) { display: none; } /* Или наоборот — показывать уведомление на странице */ .pip-indicator { display: none; } video:picture-in-picture ~ .pip-indicator { display: block; }
Как понять
СкопированоРежим PiP — это отдельное окно, где браузер показывает поток выбранного <video>
. Когда ролик вынесен в такое окно, исходный элемент на странице получает состояние :picture
. Это состояние снимается, когда ролик возвращается на страницу.
Псевдокласс работает только для <video>
(не для <audio>
). Он описывает визуальное состояние элемента, а не запускает PiP — для запуска и выхода используется веб‑API JavaScript (HTML
и document
).
Подсказки
Скопировано💡 Скрывайте кастомные оверлеи/контролы в :picture
, чтобы не «залипали» поверх видео.
💡 Комбинируйте с соседними селекторами (~
, +
) и :has
, чтобы менять другие элементы интерфейса, пока видео в PiP.
💡 На некоторых сайтах PiP может быть недоступен в <iframe>
без соответствующих разрешений; для дизайн‑превью можно временно использовать «мок»‑селектор рядом с :picture
.