是否可以在HTML5视频播放器中设置文本轨道(如字幕和标题)的样式?
我已经为Chrome找到了一种方法:
video::-webkit-media-text-track-container {
// Style the container
}
video::-webkit-media-text-track-background {
// Style the text background
}
video::-webkit-media-text-track-display {
// Style the text itself
}
这似乎让Safari有点困惑。它工作,但渲染是相当bug。
但更重要的是:如何在Firefox和IE上实现这一点?
6条答案
按热度按时间cig3rfwq1#
到目前为止,我发现的唯一跨浏览器解决方案是:隐藏视频的文本轨道,使用您自己的。
这将允许您创建自己的文本节点,包括类、ID等。然后可以通过CSS简单地对其进行样式化。
为此,您需要利用文本提示的onenter和onexit方法来实现您自己的文本节点。
yx2lnoni2#
在Chrome中使用:
火狐浏览器:
尚未支持。Open bug to implement::cue pseudo-element - https://bugzilla.mozilla.org/show_bug.cgi?id=865395
编辑:
支持Firefox,它的工作原理与Chrome和Opera类似。但目前还不支持Edge或IE。
vfhzx4xs3#
我开始设计我的标题有一个黑色的背景,并定位在Safari和Chrome的视频下面。我已经成功地使用下面的代码,并使用下面的样式编辑.vtt文件。请注意,您必须将样式添加到.vtt文件中,否则在safari中,当视频控件(即使它们被隐藏)出现时,字幕会跳来跳去:
Chrome和Safari标题的样式:
Chrome使用video::cue background-color和opacity。
Safari使用-webkit-media-text-track-display-background作为背景色。注意!important,它覆盖了Safari固有的样式。
下面的webkit-media-text-track-display溢出允许在Chrome的标题文本周围有更多的填充:
溢出可见在Safari的以下代码中很重要,我正在使用转换设置视频下方的标题,这依赖于固定的字体大小:
编辑
经过一些调整,我最终在我的项目中使用了这个:
重要:删除.VTT文件中的所有内联样式。
确定用户使用的是chrome还是safari。
然后在SASS .scss文件中使用以下样式。注意:如果你没有使用SASS,你可以简单地为video元素创建一个类,并嵌套相应的样式。
edqdpe6u4#
这是为chrome工作的
你也可以从这些链接中获得一些信息。
Link 1
Link 2
ykejflvf5#
联系我们
javascript
oknwwptz6#
对于跨浏览器解决方案,从Spencer S.的答案中分叉,但在vanilla js中使用稍微不同的事件侦听器......