【轉】如何修改 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM