如何隐藏 video 元素的下载按钮

1. 使用 video 元素的 ControlList API html

<video controls controlsList="nodownload"></video>

经过 ControList API,不只能够经过设置 nodownload 来隐藏下载按钮,还能够设置 nofullscreen 隐藏全屏按钮, 以及noremoteplayback 等属性,具体的示例能够参考 github pages。该方案的优势是原生支持,不会产生bug,并且设置起来也是简单方便,不过因为 ControlList API 是从 Chrome 58+ 才开始引入的,因此对于低于 58 版本的 Chrome 只能经过方法2来隐藏了。git

 

2. 经过 CSS 隐藏github

经过 Settings|Preferences -> Elements -> Show user agent shadow DOM 打开 shadow DOM 开关后,能够经过 devtools 查看 video 元素的组成部分。web

由此发现下载按钮的是经过 <input type="button" pseudo="-internal-media-controls-download-button" style=""> 呈现的,因此能够经过下述CSS将其隐藏:chrome

video::-internal-media-controls-download-button {
    display: none;
}

 

可是很惋惜,该方法并不起做用,猜测多是Chrome的一个BUG,因此只能另辟蹊径,简单来讲就是将下载按钮挤出可见范围,这样就能够变相的认为按钮被隐藏了,代码以下:ide

video::-webkit-media-controls {
    overflow: hidden !important;
}
video::-webkit-media-controls-enclosure {
    width: calc(100% + 32px);
    margin-left: auto;
}
相关文章
相关标签/搜索