juktastockCSS CSS  Customize background style HTML5 audio player

CSS Customize background style HTML5 audio player

Рассмотрен элементарный способ изменения фона и цвета элемента audio HTML5 в соответствие цветовой гаммы фона (страницы или блока-родителя)

Метод invert

Метод основывается на свойстве invert, относительно поддерживаемым браузерами.

Элемент HTML5 audio по разному отображается в браузерах, наша задача подогнать фон проигрывателя под фон родителя. Для гарантированного решения сузим задачу до 2 вариантов: светлый и тёмный фон. Инструменты - только CSS, код проигрывателя не изменяем. Находим родителя (в идеале body) и назначаем ему класс в зависимости от фона .light или .dark. Есть решение только под Webkit. Далее примеры и код.

Пример Светлый фон

Пример Тёмный фон

Code

/*== fix only Mozilla ==*/

В Мозилле элемент имеет тёмный фон, потому делаем invert только для светлого фона.

@-moz-document url-prefix() {
  .light audio {
    -webkit-filter:invert(100%);
    filter:invert(100%);
  }
}

ещё вариант:

@-moz-document url-prefix() {
  .light audio {
    mix-blend-mode: difference;
  }
}

/*== fix Webkit: Chrome, Opera, Yandex .. ==*/

В браузерах на Webkit элемент имеет светлый фон, потому делаем invert только для тёмного фона.

Так, как мы легко добираемся до #shadow-root элементов, то скрываем фон проигрывателя совсем: *::-webkit-media-controls-enclosure

.light *::-webkit-media-controls,
.light *::-webkit-media-text-track-container,
.dark *::-webkit-media-controls,
.dark *::-webkit-media-text-track-container {
  background-color:transparent;
}
*::-webkit-media-controls-enclosure {
  background-color:transparent;
}
.dark *::-webkit-media-controls-enclosure {
  -webkit-filter:invert(1);
  filter:invert(1);
}

/*== fix IE audio background color ==*/

С IE пока справиться не удалось

audio {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(Invert=1)"; /* no working */
  -ms-filter: invert(100%); /* no working */
  -ms-filter: invert(1); /* no working */
}

Совместимость Firefox Chrome Safari Opera


other stock resourse: CSS Reference Free stock amazing photo 30 stocks image

jukta stock code HTML CSS JS

Jukta Design SV Jukta Engine licensing CC BY-NC 4.0 2019