修改video标签自带按钮的默认样式

Posted yumeixin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修改video标签自带按钮的默认样式相关的知识,希望对你有一定的参考价值。

原文:https://blog.csdn.net/nicexibeidage/article/details/79637750

这里所说的修改video标签中自带按钮的默认样式,指的是用css就可以控制视频播放按钮的大小等

 

我们来看一下 video 的内部构造:

chrome 下,开发者工具  setting  Preferences  Elements  勾选 "Show user agent shadow DOM"

技术分享图片

技术分享图片

再回来看,已经可以看到 video 的内部结构了

技术分享图片

瞄一眼,有没有看到很熟悉的 -webkit-media-controls-fullscreen-button ?

确实如此,其他的按钮,包括播放按钮、播放进度条、静音按钮、音量条等,都可以像全屏按钮一样自定义样式。不止是隐藏噢,其他的样式同样适用,比如。。

技术分享图片

通过video::-webkit-media-controls-fullscreen-button{ display: none; }或者*::-webkit-media-controls-fullscreen-button{ display: none; }就能控制全屏按钮的样式,其他按钮是一样的。

但是,下载按钮很特别,是获取不到的,所以无法控制它的样式,但是可以将它隐藏

 

怎么办?有两种方式:

1. controlsList

在 video 上加属性 controlsList="nodownload",就可以隐藏下载按钮。

就这么简单?当然不是。。。这种方式需要 Chrome 58+ 才支持,不能用于生产环境

2. overflow: hidden

video::-webkit-media-controls-enclosure{ overflow: hidden; }

video::-webkit-media-controls-panel{ width: calc(100% + 30px); }

就是将控制条面板设的长一些,超出的隐藏。。。这种方式还是勉强可以用于生产环境的,因为没有别的更好的办法。。。

 

以上是关于修改video标签自带按钮的默认样式的主要内容,如果未能解决你的问题,请参考以下文章

video.js全屏bug&隐藏/添加全屏按钮

移动端video标签默认置顶的解决方案

在移动端怎么将HTML5中的video标签的控件去掉或者隐藏

jQuery如何操作video标签里面的autoplay属性

如何修改 video 样式

在移动端怎么将HTML5中的video标签的控件去掉或者隐藏