是元数据标签,不参与CSS渲染,故line-height对其无效;字幕由浏览器底层合成,仅支持color、font-size等极少数样式属性。

HTML 没有专门的“字幕标签”,<caption></caption> 是表格标题,<track></track> 是视频字幕轨道容器——它本身不渲染文字,真正显示字幕的是浏览器内置字幕渲染层,无法用 line-height 直接控制。
为什么给 <track></track> 设 line-height 完全无效
因为 <track></track> 是元数据标签,不参与 CSS 渲染流程。你写 <track style="line-height: 2;"></track> 或在 CSS 里选中它,开发者工具里根本看不到 line-height 被计算或应用。字幕文本由浏览器底层合成,样式接口极其有限(仅支持极少数属性,如 color、font-size、text-shadow)。
实现 Markdown↔ HTML 互转,支持导出 PDF,用于用户请求的文档格式转换。
- Chrome / Edge 的字幕渲染基于 WebVTT 规范,行高由字体大小 + 内置行距算法决定,不可覆盖
- Firefox 更严格,连
font-family都可能被忽略,line-height属于完全不支持的属性 - 试图用
<div> 模拟字幕并加 <code>line-height?那已不是标准字幕,无法与视频时间轴同步,也绕不开<track></track>的语义和可访问性要求<caption></caption>的行高设置要避开 height 冲突<caption></caption>是普通块级元素,line-height可用,但容易被表格默认样式干扰。常见问题是:设了line-height: 1.4却看起来没变化,或者上下留白异常大。- 必须确认父
<table> 没设 <code>border-collapse: separate(默认值),否则caption外边距会和表格边框叠加,视觉上“撑开”高度 - 避免同时设
height和line-height:height会强制截断内容,而line-height是行内空间,二者逻辑冲突 - 多行
<caption></caption>文本(少见但合法)不能靠line-height控制整体高度,需用padding或margin调整外边距 - 推荐写法:
caption { line-height: 1.5; padding: 8px 12px; },不碰height,让内容自然撑开
多行纯文本字幕(非
<track></track>)怎么调行距如果你用
<div class="subtitle"> 手动实现字幕(例如弹幕、实时翻译浮层),那就是标准 CSS 场景,但要注意换行和垂直节奏。<p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</p> <ul> <li>用 <code>white-space: pre-line保留换行符,避免文字挤成一行 - 必须确认父
- 设
line-height: 1.6(无单位),比固定像素更安全:字体缩放时行距同比例变化 - 若字幕区域高度固定(如 60px),且必须单行居中,才用
line-height: 60px;多行场景绝对不要这么干,会导致第二行直接溢出 - 中文多行字幕易粘连,
line-height至少 1.5,12px 小字号下建议 1.6–1.7 - 最后一条字幕下方留空不足?不是
line-height问题,是容器padding-bottom不够,或未清除浮动/行框基线影响
真正难调的不是行高数值,而是字幕和视频帧率、字体加载、系统字体回退之间的耦合。比如 WebVTT 文件里用 <b></b> 包裹关键词,浏览器渲染时bold 字重会改变行框高度,导致同一行字幕在不同设备上行距不一致——这种细节,line-height 压根管不了。


















