В UBlcok Origin я пытаюсь скрыть панель поиска / заголовка вверху Youtube, когда на странице с видео, но не когда на главной странице. Это было намного сложнее, чем я себе представлял, потому что youtube не только повторно использует идентификаторы на той же странице, но также использует те же идентификаторы и классы на домашней странице, что и видео-страницы - так что я решил попробовать и использовать процедурную косметику c фильтр .
Пока у меня есть:
! stop search bar from floating when scrolling
youtube.com###masthead-container.ytd-app:style(position: static !important)
! remove resulting whitespace (search bar still remains for some reason)
youtube.com###masthead-container:style(height: 0 !important)
! move video up to cover search bar but only if #content's ytd-page-manager element contains a ytd-watch-flexy element
youtube.com###content.style-scope.ytd-app:has(ytd-page-manager:has(ytd-watch-flexy)):style(position: relative; top: -56px !important)
, но последняя строка не работает. Поэтому я изменил его, чтобы вызывать пользовательские элементы YouTube по id и классу:
youtube.com###content.style-scope.ytd-app:has(#page-manager:has(.hide-skeleton)):style(position: relative; top: -56px !important)
, и он успешно выберет правильный элемент #content
, если я удалю условное выражение :style(...)
- но, как показано, оно По-видимому, не применяется скрытие или применение стиля, если я связываю :style()
с условным условием :has()
.
Можете ли вы связать :has()
и :style()
?