当前位置: 首页 > news >正文

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

1. 使用 video 元素的 ControlList API 

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

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

 

2. 通过 CSS 隐藏

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

由此发现下载按钮的是通过 <input type="button" pseudo="-internal-media-controls-download-button" style=""> 呈现的,所以可以通过下述CSS将其隐藏:

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

 

但是很可惜,该方法并不起作用,猜想可能是Chrome的一个BUG,所以只能另辟蹊径,简单来说就是将下载按钮挤出可见范围,这样就可以变相的认为按钮被隐藏了,代码如下:

video::-webkit-media-controls {
    overflow: hidden !important;
}
video::-webkit-media-controls-enclosure {
    width: calc(100% + 32px);
    margin-left: auto;
}

 

转载于:https://www.cnblogs.com/philipding/p/8299375.html

相关文章:

  • 【Android】自动提示匹配之AutoCompleteTextView
  • 9、ABPZero系列教程之拼多多卖家工具 拼团提醒类库封装
  • 【Android】时间与日期Widget(DatePicker 与 TimePicker)
  • 表单
  • 面试题——二维数组中的查找
  • 使用java poi解析表格
  • 【Android】如何查看每个方法所花费的时间从而进行Performance的调优
  • docker-compose命令
  • 你还在迭代和递归吗?
  • 受欢迎的牛
  • appium自动化安装(一)
  • Template Method模板方法
  • UVA 10603 倒水问题
  • 程序员编程艺术第二十六章:基于给定的文档生成倒排索引(含源码下载)
  • Flume数据采集准备
  • ----------
  • 10个确保微服务与容器安全的最佳实践
  • nodejs实现webservice问题总结
  • Node项目之评分系统(二)- 数据库设计
  • node学习系列之简单文件上传
  • Vue官网教程学习过程中值得记录的一些事情
  • 从零搭建Koa2 Server
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 力扣(LeetCode)965
  • 前端面试之CSS3新特性
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 小程序测试方案初探
  • 小程序开发之路(一)
  • 以太坊客户端Geth命令参数详解
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • (3)选择元素——(17)练习(Exercises)
  • (Git) gitignore基础使用
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (分布式缓存)Redis哨兵
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (九)c52学习之旅-定时器
  • (理论篇)httpmoudle和httphandler一览
  • (三)Honghu Cloud云架构一定时调度平台
  • (十八)SpringBoot之发送QQ邮件
  • (十三)Maven插件解析运行机制
  • .aanva
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .Net各种迷惑命名解释
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [100天算法】-实现 strStr()(day 52)
  • [AIGC 大数据基础]hive浅谈
  • [BUG] Authentication Error
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [C# 基础知识系列]专题十六:Linq介绍