【转】如何修改 video 样式

我们这里说的“修改 video 样式”并不是要自己实现一套 controls,而是尝试修改 video 的默认样式

隐藏全屏按钮

这个很容易查到

video::-webkit-media-controls-fullscreen-button{ display: none; }

那么,video::-webkit-media-controls 是什么?还可以用它来定义哪些元素的样式,见下文

自定义其它样式

为什么用一个 video 标签就可以播放视频呢,它内部是怎么实现的呢?

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

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

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

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

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

下载按钮

是不是感觉从此 video 尽在掌控,想让它啥样就啥样了?大部分情况下,确实如此。

然而,还有个不听讲的妖孽,就是下载按钮。尝试用 video::-internal-media-controls-download-button 定义隐藏,并不生效

怎么办?有两种方式:

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

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

参考

1. https://googlechrome.github.io/samples/media/controlslist.html HTMLMediaElement controlsList Sample

2. http://www.cnblogs.com/coco1s/p/5711795.html 神秘的 shadow-dom 浅析

3. http://www.cnblogs.com/kevinxue/p/6638733.html h5的video下载按钮如何隐藏

移动端环境险恶,上线前警惕自测!

from:https://baijiahao.baidu.com/s?id=1577249646248377416&wfr=spider&for=pc

原文地址:https://www.cnblogs.com/xuan52rock/p/8806580.html

时间: 2024-07-31 02:41:23

【转】如何修改 video 样式的相关文章

radio checkbox 修改默认样式

1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <title>radio与checbox修改默认样式</title> 7 <style> 8 body{font-size: 12px;} 9 /*radio*/ 10 11 .radio-input label { font-weig

jquery修改css样式,样式带!important

由于需求的需要,今天在用jquery修改一个弹出框的样式的时候,由于有一个按钮有padding-left:12px;导致内间距空出来的这一块颜色用普通的方式无法改变. 普通的jquery修改css的方法:$("#idName").css("backgroundColor","red");但是这个方法无法改变padding-left:12px;这一块的背景色,因为定位不到它的id. 后来在请教了公司的搞html的同事(民庆)后,他说要在样式后面加个

关于修改css样式的几种js用法

看了js也有一段时间了,对于修改css样式有很多种方式可以实现,今天做一个小小的总结吧. 首先写个例子 body部分 <div class="box"></div><inpiut id-"btn" type="button" value="按钮"> style部分 .box{ width: 100px; height: 100px; background: red; border: 1px

修改行间样式属性不确定时“.”可以用“[ ]”代替

修改行间样式属性不确定时可以用“[ ]”代替 aBtn.onclick = function () { oBox.style[aText[0].value] = aText[1].value; }

javascript 修改css样式

abc.css CSS code .class1     {    width:10px;    background-color: red;    } HTML code <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><link rel="stylesheet" type="text/css" href

用JS查看修改CSS样式(cssText,attribute(&#39;style&#39;),currentStyle,getComputedStyle)

CSS样式定义方法 大家都知道,在为HTML设置样式的时候,通常有三种方法:内联样式,内部样式表,外部样式表. 1.内联样式: 内联样式表就是在HTML元素中的行内直接添加style属性. 1 <div id="div1" style="width: 100px; height: 100px; background: black"> 2 </div> 2.内部.外部样式表: 内部样式表就是在<head>头部里有<style&

js修改行间样式

样式优先级是 *(通配符)<标签<class<id<行间样式 其中行间样式的优先级最高哦 js中通过style属性来修改的样式,都是直接修改的行间样式,给了style的话再去修改classname就没有效果了 所以在修改样式表的过程中要么直接修改style要么修改class,不能混着来,否则样式表会出现混乱,行间事件会导致标签里面的内容 太乱不方便管理,所以编辑js的时候需要注意提取行间事件 当不给函数取名字的时候,可以使用匿名函数给js事件添加函数,比如oDiv.onclick

07.30《jQuery》——1.4修改CSS样式

1.单一修改样式 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #aaa{ height: 100px; width: 100px; background-color: red; } </style> <script src=&

vue中修改swiper样式

问题 vue单文件组件中无法修改swiper样式. 解决 1,单文件组件中:新增一个style 不加scoped 让它最终成为全局样式.只在其中操作swiper的样式. <style lang="scss"> .swiper-container{ .swiper-pagination{ .swiper-pagination-bullet{ width: 14px; height: 14px; } } } </style>// 项目中多次使用swiper 的话 就