0

0

CSS伪元素::cue应用_定制WebVTT字幕的显示效果

P粉602998670

P粉602998670

发布时间:2026-02-11 09:41:33

|

694人浏览过

|

来源于php中文网

原创

::cue伪元素仅作用于已加载激活的WebVTT字幕轨道,要求track.readyState===2、src可访问、首行为WEBVTT,且不支持嵌套选择器或HTML标签样式化。

css伪元素::cue应用_定制webvtt字幕的显示效果

::cue 伪元素只能作用于 WebVTT 字幕轨道,且仅在 已加载并激活时生效

浏览器不会把 ::cue 应用到纯文本或

里手动插入的字幕内容——它只认 下挂载的 ,而且该 track 必须已通过 load() 或自动加载完成、状态为 loaded。常见错误是样式写了半天没反应,结果发现 track 的 src 404 或 CORS 阻止了加载,::cue 根本不触发。
  • 检查 track.readyState === 2loaded)再调试样式
  • 必须放在 内部,且不能用 JS 动态 appendChild 后再指望样式立刻生效(需等 onload
  • WebVTT 文件首行必须是 WEBVTT,否则解析失败,::cue 失效

::cue 不支持嵌套选择器,所有样式都作用于单个 cue 文本块整体

::cue 是原子级伪元素,无法写成 ::cue b::cue > span。WebVTT 里的 等 HTML 标签会被解析为内联格式,但它们不是真实 DOM 节点,只是渲染提示。你只能对整个 cue 块统一设置字体、颜色、背景,不能单独选中其中加粗部分。

  • 想高亮某几个词?WebVTT 里用 或自定义类名(如 )没用——::cue(v) 不合法,::cue([lang="en-US"]) 也不支持
  • 可用的扩展写法只有 ::cue(.highlight),前提是 WebVTT 中用了 text,且浏览器支持(Chrome ≥ 115、Firefox ≥ 119;Safari 仍不支持类选择器)
  • 性能上,::cue 样式会随字幕时间轴频繁重绘,避免用 box-shadowfilter

WebVTT 中的 CSS 类必须显式声明,且仅限字母数字和连字符

WebVTT 允许在 cue 行末尾加类名,例如:00:00:01.000 --> 00:00:03.000 align:center line:80% class:warning。但这个 class:warning 不会自动变成 HTML 的 class="warning",它只是供 ::cue(.warning) 匹配的标识符——而且只认 ASCII 字母、数字、连字符,不支持下划线、中文、空格。

  • 错误写法:class:high-light ✅(合法),class:high_light ❌(下划线不识别)
  • 多个类要用空格分隔:class:warning big-text,对应 ::cue(.warning, .big-text)(注意逗号是“或”关系)
  • 类名大小写敏感:class:Warning::cue(.warning)
  • 如果用 JS 动态注入 WebVTT 内容,需确保类名字符串未被 URL 编码或转义

移动端 Safari 对 ::cue 支持最弱,关键样式建议降级兜底

iOS Safari 直到 16.4 才开始支持 ::cue 基础样式(如 colorfont-size),且不支持 ::cue(.class)::cue(::first-line) 等任何扩展。更麻烦的是,它默认把字幕渲染在视频层上方一个独立合成层,z-indextransform 完全无效,背景色也常被裁掉。

谱乐AI
谱乐AI

谱乐AI,集成 Suno、Udio 等顶尖AI音乐模型的一站式AI音乐生成平台。

下载

立即学习前端免费学习笔记(深入)”;

  • 必须兼容 iOS?优先用 ::cue 设置字体、颜色、文字阴影,放弃背景、圆角、边框
  • 测试时真机必跑:模拟器里的 Safari 渲染行为和真机差异极大
  • 兜底方案不是 JS 插入 DOM 字幕(破坏可访问性),而是用 + 原生字幕 UI,再用 ::cue 仅做轻量增强
  • 别依赖 ::cue 实现字幕定位——linealign 等 WebVTT 指令本身才是跨平台可靠的定位方式

真正卡住人的往往不是语法,而是 WebVTT 解析时机、类名拼写、iOS 版本碎片,以及你以为改了 CSS 就能立刻看到效果——其实得先让 track 加载成功、字幕时间轴走到那条 cue、浏览器刚好支持这个特性分支。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

926

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

776

2023.11.06

mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

193

2023.12.04

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

298

2024.02.23

java标识符合集
java标识符合集

本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

267

2025.06.11

c++标识符介绍
c++标识符介绍

本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

129

2025.08.07

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

485

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

213

2023.09.04

包子漫画网页版入口与全集阅读指南_正版免费漫画快速访问方法
包子漫画网页版入口与全集阅读指南_正版免费漫画快速访问方法

本专题汇总了包子漫画官网和网页版入口,提供最新章节抢先看方法、正版免费阅读指南,以及稳定访问方式,帮助用户快速直达包子漫画页面,无广告畅享全集漫画内容。

50

2026.02.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.3万人学习

CSS教程
CSS教程

共754课时 | 29.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号