是否可以设置html5音频标签的样式?

rab*_*ne9 111 audio html5

我没有找到任何有关如何做到这一点的资源.像改变玩家颜色这样简单的事情会很好:)

Fáb*_*ami 62

<audio>

audio::-webkit-media-controls-panel

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-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
Run Code Online (Sandbox Code Playgroud)

  • 可怜的演示但有用的CSS选择器! (14认同)
  • 这仅受基于webkit的浏览器支持(例如,不支持Firefox,IE等) (8认同)
  • 你能否举例说明如何使用这些?只是示例代码? (5认同)
  • 非常好的黑客,这是正确的答案,非常感谢!我没有痛苦地改变音频标签的风格和额外的JS代码,ViVa Fabio (2认同)
  • 似乎是从 https://gist.github.com/afabbro/3759334 复制/粘贴的 (2认同)

gil*_*ani 54

是的:您可以隐藏内置浏览器UI(通过删除controls属性audio),然后构建您自己的界面并使用Javascript()控制播放:

<audio id="player" src="vincent.mp3"></audio>
<div> 
  <button onclick="document.getElementById('player').play()">Play</button> 
  <button onclick="document.getElementById('player').pause()">Pause</button> 
  <button onclick="document.getElementById('player').volume += 0.1">Vol +</button> 
  <button onclick="document.getElementById('player').volume -= 0.1">Vol -</button> 
</div>
Run Code Online (Sandbox Code Playgroud)

然后,您可以将CSS类添加到元素(在本例中为div+ buttons),并根据需要设置样式.

可以在此处找到HTMLAudioElement JavaScript接口的其他属性和方法.

  • @user1432181 你的回答似乎不正确。您链接到的问题说,iOS 会阻止自动播放,并要求通过用户交互启动播放。此答案中提供的代码在单击事件后运行。 (2认同)

Ben*_*nny 46

是! 带有"controls"属性的HTML5音频标签使用浏览器的默认播放器.您可以根据自己的喜好自定义它,不使用浏览器控件,而是滚动自己的控件并通过javascript与音频API通信.

幸运的是,其他人已经做到了这一点.我现在最喜欢的球员是jPlayer,它很有风格,效果很好.看看这个.

  • 你还没告诉我们如何定制它.我在这里找到了一些东西:http://www.theparticlelab.com/building-a-custom-html5-audio-player-with-jquery/ (39认同)
  • 所以答案是"不,不可能,你必须使用外部播放器"? (38认同)
  • 那么,这真的是"不"吗?滚动自己的UI与固定现有标记不同. (8认同)
  • 谢谢@dsschnau.我发布了我的评论,因为问题是关于样式化html5 _video_标签,并且所有答案都或多或少像_yes,这是可能的,使用其他标签_. (3认同)
  • @Fernando:确实有可能.这回答了"这有可能吗?"的问题. (2认同)
  • 如果您不想开箱即用地使用 jplayer 的其中一种皮肤,则很难对其进行自定义。我想要一个简单的播放器——小巧且易于剥皮。 (2认同)
  • 这个答案实际上只是到资源的链接。如果jPlayer离开了怎么办? (2认同)

Mih*_*hai 29

标签的外观取决于浏览器,但您可以隐藏它,构建自己的界面并使用Javascript控制播放.


小智 8

要改变播放器的颜色,只需在你的css文件中找到音频标签,例如在我的一个网站上播放器变得不可见(白底白字),所以我补充说:

audio {
    background-color: #95B9C7;
}
Run Code Online (Sandbox Code Playgroud)

这将玩家改为淡蓝色.

  • 这不会改变我的播放器的颜色,它只会在背后添加背景颜色.知道为什么吗? (9认同)

小智 8

肯也没错.

一个css标签:

audio {

}
Run Code Online (Sandbox Code Playgroud)

会得到一些结果.似乎它不希望玩家任何高度高于或低于25px,但宽度可以缩短或延长到一定程度.

这对我来说已经足够了; 看这个例子(警告,音频自动播放):www.thenewyorkerdeliinc.com


kat*_*ode 8

您必须创建自己的播放器,与HTML5音频元素接口.本教程将帮助http://alexkatz.me/html5-audio/building-a-custom-html5-audio-player-with-javascript/


Ale*_*x G 7

如果您使用的是 Chrome,请在 Chrome 开发工具设置中启用“显示用户代理影子 DOM”

显示用户代理影子 DOM

现在你将能够看到所有的伪类

audio::-webkit-media-controls-panel

audio::-webkit-media-controls-mute-button

audio::-webkit-media-controls-play-button

...
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

现在你可以设计它们

audio::-webkit-media-controls-panel

audio::-webkit-media-controls-mute-button

audio::-webkit-media-controls-play-button

...
Run Code Online (Sandbox Code Playgroud)


Art*_*lov 6

一些颜色调整

audio {
    filter: sepia(20%) saturate(70%) grayscale(1) contrast(99%) invert(12%);
    width: 200px;
    height: 25px;
}
Run Code Online (Sandbox Code Playgroud)

  • 这是改变播放器基本颜色的快速而肮脏的方法,非常方便 (4认同)

Her*_*che 6

是的,有可能,来自 @F\xc3\xa1bio Zangirolami 的回答

\n\n
audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel {\n                background-color: red;\n}\n
Run Code Online (Sandbox Code Playgroud)\n


Ste*_*Bob 6

缺少最重要的一个 IMO 控件容器::-webkit-media-controls-enclosure

&::-webkit-media-controls-enclosure {
    border-radius: 5px;
    background-color: green;
}
Run Code Online (Sandbox Code Playgroud)