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; }