当spec中的控件属性不存在时,没有明确指示音频标签应该如何显示。所以它可能会依赖于浏览器。当然,对于视频标签,即使没有控件,也可以显示视频帧,但在音频标签的情况下,您只需“声音”即可中继到目的地(读取扬声器,耳机......)。
如果你决定不使用/设置默认浏览器省去控制属性控制(无论是动态或不)你应该提供自己的一套控制。
您可以使用JavaScript和div封装器来实现您想要的音频标签。一个例子如下:
<div id="audioWrapper">
<audio id="myAudio" controls>
<source src="your.mp3" type="audio/mpeg" />
Your browser does not support this audio format.
</audio>
</div>
<div id="showAudio">Show</div>
<div id="hideAudio">Hide</div>
<script type="text/javascript">
var audio = document.getElementById('myAudio');
var showButton = document.getElementById('showAudio');
var hideButton = document.getElementById('hideAudio');
showButton.addEventListener('click',function(){
audio.style.display="block";
},
false);
hideButton.addEventListener('click',function(){
audio.style.display="none";
},
false);
</script>
CSS
#audioWrapper {
background: yellow;
width: 200px;
height: 100px;
display: block;
border: solid 1px #000;
}
audio{
width: 100%;
}
还要记住,有可能是用于浏览器的音频控制最小宽度或高度,以正确显示(使得它不会重叠与你的背景)。