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


120

我没有找到有关如何执行此操作的任何资源。只需更改播放器的颜色即可,:)


3
让我想起旧Wurlitzers上的节奏按钮-“桑巴舞”,“爵士乐”,“华尔兹舞曲”,...
David Gelhar 2010年

1
不同的浏览器不同的反应音频元素的造型- stackoverflow.com/a/27765938/325251
mvark

1
是的,而且看起来也很糟。他们如何使它看起来如此糟糕?
现场直播

1
视频样式跨浏览器答案advprog.blogspot.co.uk/2013/07/…–
Mousey

@ 40-Love:这是一个严肃的问题吗?是微软!
林戈

Answers:


47

是! 具有“ controls”属性的HTML5音频标签使用浏览器的默认播放器。您可以根据自己的喜好自定义它,方法是不使用浏览器控件,而是滚动自己的控件并通过javascript与音频API对话。

幸运的是,其他人已经做到了。我现在最喜欢的播放器是jPlayer,它的风格非常好,效果很好。看看这个。


49
因此答案是“不,不可能,您必须使用外部播放器”?
费尔南多

2
@Fernando:的确有可能。这回答了问题“可能吗?”
Dan

3
谢谢@dsschnau。我发表评论是因为问题与样式html5 视频标签有关,所有答案或多或少都像是,可以使用其他标签
费尔南多

10
那么,这真的是“否”吗?滚动自己的UI与设计现有标记的风格不同。
bob

2
这个答案实际上只是到资源的链接。如果jPlayer 消失了怎么办?
凯尔(Kyle)

73
<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

参考:https : //chromium.googlesource.com/chromium/blink/+/72fef91ac1ef679207f51def8133b336a6f6588f/Source/core/css/mediaControls.css? autodive =0% 2F%2F% 2F


18
表现不佳但有用的CSS选择器!
2016年

6
您能举例说明如何使用这些吗?只是示例代码?
Xsmael '16

9
仅基于Webkit的浏览器(例如Firefox,IE等)不支持此功能
gilad mayani

2
非常好的黑客攻击,这是正确的答案,非常感谢!我更改音频标签的样式时不会感到痛苦,也无需添加其他JS代码,ViVa Fabio
Java ACM

1
似乎是复制/粘贴从gist.github.com/afabbro/3759334
diachedelic

64

是:您可以隐藏内置的浏览器用户界面(通过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>

然后,您可以根据需要使用CSS设置样式。

MDN HTMLAudioElement API参考


当然这(在.play)不会对IOS的工作,因为它被封锁(见stackoverflow.com/questions/31776548/...
user1432181

30

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


14

一些颜色调整

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

1
这是一种快速而又肮脏的方式来更改玩家的基本颜色,非常方便
wakandan

我清除了我的登录凭据以进行登录,投票并说“谢谢”。
Marc Amos


8

肯也说对了。

一个css标签:

audio {

}

将为您带来一些结果。似乎它不希望玩家在25px以上或以下的任何高度,但是宽度可以缩短或延长到一定程度。

这对我来说已经足够了;请参见以下示例(警告,音频会自动播放):www.thenewyorkerdeliinc.com


对我来说,一个大问题是Internet Explorer。即使宽度设置为150px,它看起来也很糟糕,颜色不同并且尺寸比其他浏览器播放器大得多
Ringo

如果您需要将IE9 +播放器放到一个很小的空间中,那么25像素的高度和100像素的宽度对我来说很有效。我认为25px的高度是关键,但是无论出于何种原因,较大的数字都无法工作。
林戈

不幸的是,链接
断开

6

要仅更改播放器的颜色,只需在css文件中处理音频标签,例如在我的一个站点上,播放器就变得不可见(白底白字),因此我添加了:

audio {
    background-color: #95B9C7;
}

这将播放器更改为浅蓝色。


12
这不会更改播放器的颜色,只会在其后面放置背景色。知道为什么吗?
汤姆(Tom)

1
@Tom,因为此解决方案不适用于更改播放器的默认灰色背景:-)与您的结果相同。
Florian Doyen

0

是的,有可能,来自@FábioZangirolami答复

audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel {
                background-color: red;
}

在Firefox 77上不起作用
Henry

-4

如果要在CSS中设置浏览器标准音乐播放器的样式,请执行以下操作:

audio {
    enter code here;
}

1
不完整的描述非常简单,我可以使用这种方式来样式化所有元素的音频
Davod Aslanifakor

即使粗略地检查了这个答案,也会发现这是错误的。
艾萨克·卢博
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.