Как настроить элементы управления аудио HTML5 без использования JavaScript (Pure CSS)

Мне нужно настроить аудио контроль HTML5 следующим образом:

введите описание изображения здесь

Кто-нибудь может решить мою проблему?

Вот что у меня так далеко:

audio::-webkit-media-controls-panel
{
 background-color:powderblue;
}
// audio::-webkit-media-controls-mute-button
// audio::-webkit-media-controls-play-button
// audio::-webkit-media-controls-timeline-container
// audio::-webkit-media-controls-current-time-display
// audio::-webkit-media-controls-time-remaining-display
// audio::-webkit-media-controls-enclosure
// audio::-webkit-media-controls-timeline 
// audio::-webkit-media-controls-volume-slider-container 
// audio::-webkit-media-controls-volume-slider 
// audio::-webkit-media-controls-seek-back-button 
// audio::-webkit-media-controls-seek-forward-button 
// audio::-webkit-media-controls-fullscreen-button 
// audio::-webkit-media-controls-rewind-button 
// audio::-webkit-media-controls-return-to-realtime-button 
// audio::-webkit-media-controls-toggle-closed-captions-button 


<audio controls>
  <source src="horse.mp3" type="audio/mpeg">
</audio>

1 ответ

Мы вынуждены использовать для каждого браузера специальные CSS, как вы показали, чтобы изменить аспекты кнопки. Это встроено в браузер.

Было бы проще сделать кнопку самостоятельно и управлять ею с помощью js (сейчас это очень просто, плагин не нужен). onclick="player.play()" например.

Или мы можем взломать аппарат с помощью фильтров CSS на них. Это не изменит аспект, но добавит некоторые эффекты, попробуйте навести курсор мыши на кнопку.

Например, кнопка и некоторые детали одного и того же зеленого цвета, полученные с помощью фильтра оттенков. На самом деле он будет отображаться зеленым во всех браузерах.

Инвертный фильтр будет отображаться черным, если по умолчанию используется белый и т. Д.

audio {
  filter: sepia(100%) saturate(400%) grayscale(0) contrast(200%) hue-rotate(46deg) invert(12%);
  }
<audio 
       controls
       src="http://www.ektoplazm.com/mp3/cybered-and-opsy-children-of-paradise.mp3"></audio>

Посмотрите этот скрипт, который я использую, чтобы увидеть, что можно сделать с фильтрами CSS.

https://codepen.io/Nico_KraZhtest/pen/bWExEB

Редактировать: Смотрите следующее простое базовое решение javascript: щелкнув по изображению, вы запустите (скрытый) плеер...

audio {width:0px}
img {cursor:pointer}
<audio 
       id="player"
       controls
       src="http://www.ektoplazm.com/mp3/cybered-and-opsy-children-of-paradise.mp3"></audio>

<img onclick="player.play()" src="https://stackru.com/images/3d004ccfa7e5799837b07b404bf3ca463a091d39.png">

Другие вопросы по тегам