Marp全屏演示应用程序接口 | AI生成和翻译

Home 2026.04

问题:为什么 Marp 的 HTML 导出在 Safari 中能以全屏运行,它使用了什么技术,而普通的 HTML 为什么没有全屏选项?

回答:

Marp 的 HTML 导出在 Safari 中以全屏模式运行,是因为它基于 浏览器全屏 API 加上幻灯片式的演示布局构建(本质上是一个为演示设计的 Web 应用)。

1. Marp 实际导出的内容

Marp 导出的不是传统意义上的“普通 HTML 页面”,而是一个 演示型 Web 应用,通常包含:

因此它的行为更像:

一个在浏览器中运行的迷你 PowerPoint


2. 关键技术:全屏 API

Marp 使用了浏览器内置的:

激活后,Safari(以及其他浏览器)可以:

这就是为什么 Marp 能像原生演示应用一样运行。


3. Safari 为什么能很好地支持此功能

Safari 对全屏 API 的支持很完善,适用于:

Marp 很可能以全屏 <div> 容器为目标,例如:

document.documentElement.requestFullscreen()

或者幻灯片容器:

slideContainer.requestFullscreen()

一旦激活,Safari 就会切换到“类似演示模式”的状态。


4. 为什么“普通 HTML”不会自动进入全屏

普通 HTML 页面不会进入全屏模式,原因如下:

(1)安全限制

全屏必须:

因此普通网站只会保持在浏览器 UI 内。


(2)缺乏布局强制约束

常规 HTML:

因此即使启用了全屏,除非专门设计,否则它看起来仍然像一个网页。


(3)全屏不是默认行为

浏览器默认假设:


5. 为什么 Marp 感觉与普通 HTML 不同

Marp 补全了缺失的部分:

特性 普通 HTML Marp HTML
全屏 API 可选 主动使用
布局 流式文档 固定幻灯片视口
导航方式 滚动 基于幻灯片(JS 控制)
演示模式 内置

因此 Marp 本质上是:

HTML + CSS + JS + 全屏 API = 演示引擎


6. 为什么它在 Safari 中尤其流畅

Safari 倾向于:

因此 Marp 的幻灯片结构与 Safari 的全屏行为完美契合。


如果你需要,我可以详细说明如何仅用 HTML + CSS + 20 行 JavaScript 代码构建一个迷你“类 Marp”系统。


Back Donate