HTML无原生直播标签,需用class(如live)配合CSS/JS实现视觉标识,仅提供语义时间信息,不触发样式或行为。

HTML 本身没有“直播状态”或“正在直播”的原生标签,也不存在语义化标记直播的专用元素——靠 <live></live> 或 <streaming></streaming> 这类写法会直接被浏览器忽略,甚至触发解析错误。
用 <time></time> + datetime 表达实时性,但仅限语义,不触发视觉效果
HTML5 的 <time></time> 元素本意是标注时间点或区间,可用于说明“直播开始于何时”,但它不会自动变红、闪烁或加徽章。它只对可访问性(如屏幕阅读器)和 SEO 有微弱帮助。
常见误用:<time datetime="2024-06-15T20:00">正在直播</time> —— 这段 HTML 合法,但“正在直播”纯属文本,浏览器不识别其状态含义。
- 正确姿势:把真实时间戳放进
datetime属性,文字内容保持可读,例如<time datetime="2024-06-15T20:00:00Z">今晚 8 点开播</time> - 若真在播,
datetime应该是当前时间(需服务端动态生成或 JS 实时更新),静态写死就失去意义 - 别指望靠这个让按钮变色或弹通知——它不触发任何行为
视觉上标“正在直播”,必须靠 CSS + 显式 class 控制
所有醒目的直播标识(红点、角标、滚动条、闪烁边框)都得手动加 class,再用 CSS 渲染。没有捷径,也没有隐含语义自动激活样式。
把任意文章或文档内容转换成精美的全屏翻页 HTML 演示文件(幻灯片风格)。当用户发来一篇文章、文档链接、Markdown 内容、或粘贴的文本,并且希望生成演示用的 HTML 时触发。支持任意内容来源:iWiki 链接、KM 链接、本地文件路径、直接粘贴的文本。生成的 HTML 文件保存到本地工作区,并通过企微直接发送给用户。触发词示例:帮我把这篇文章做成PPT、转成演示文档、生成HTML幻灯片、做个演示、转成可以演示的格式、article to deck、make a slide。
立即学习“前端免费学习笔记(深入)”;
典型结构:<div class="video-card"><span class="status-badge live">正在直播</span></div>
- 关键点:class 名(如
live)是唯一能让 JS/CSS 感知“这是直播”的依据 - 别用
id="live"—— id 不适合批量复用;也别用data-is-live="true"单独存状态而不配 class,CSS 无法直接响应 data 属性 - 如果直播状态由后端控制,确保模板里真实输出了
live类;前端 JS 切换状态时,也要同步增删该 class,不能只改文字
JS 动态判断是否直播?别信 document.visibilityState 或 performance.now()
浏览器 API 无法知道你的视频流是否真在推流或观众是否看到画面。所谓“判断直播中”,实际是检查一个外部信号源:比如轮询后端接口返回 {"status": "live"},或监听 WebSocket 推送的 stream_started 事件。
- 错误做法:用
document.hasFocus()判断用户是否在看 → 和直播状态完全无关 - 错误做法:用
Date.now() - startTime 算“开播 5 分钟内算直播” → 时间不准,且无法处理中断重连 - 可靠做法:绑定一个明确的状态字段,例如从接口取到
is_live: true,再执行el.classList.add('live') - 注意竞态:多个请求可能同时修改状态,建议用 Promise 链或 AbortController 避免旧响应覆盖新状态
最易被忽略的一点:直播标识的“醒目”不是靠 HTML 标签决定的,而是 class 名是否被 CSS 正确捕获、JS 是否在正确时机更新它、以及后端状态是否真实反映流媒体服务器的实际推流状态——三者缺一不可。少一个,页面上写的“正在直播”就是假消息。


















