优先选 , 是遗留方案,缺乏可访问性支持、fallback 机制和语义化控制; 需指定 data 和 type,内部文本为 fallback,现代浏览器对其兼容性和稳定性更优。
还是
优先选 , 是遗留方案,没有标准 fallback 机制,也不支持 aria 属性或语义化嵌入控制。浏览器对 的可访问性支持更完整,且能通过 type 和 data 显式声明资源类型。
的必需属性和 fallback 写法必须提供 data(目标资源 URL)和 type(MIME 类型),否则部分浏览器(如 Firefox)会忽略加载;内部文本内容即 fallback,会在加载失败或不支持时显示:
type 错误(如写成 video/mpeg4)会导致 Chrome/Firefox 拒绝加载type 时,浏览器靠文件扩展名或响应头推断,不可靠 外再套 或 做容器——它本身已具备尺寸与交互能力
只在什么场景下还能用
仅限快速原型、内网工具页、或需兼容极老环境(如 IE8–)且明确放弃可访问性与错误处理的场合。它不支持子元素,无法定义 fallback,所有参数都靠属性传:
@@@###@@@
-
没有规范定义的错误状态,加载失败时页面就留白,无提示
- 现代浏览器对
type 属性基本忽略,只认 src 和文件后缀
- 若用 JavaScript 动态插入
,Safari 可能不触发加载,而 更稳定
PDF、SVG、音频等常见资源的实际写法差异
PDF 推荐用 并显式声明 application/pdf;SVG 可以内联,但外链 SVG 必须用 才能支持脚本和 CSS;/ 标签已原生支持,无需套 或 。
- PDF:
- SVG:
- 避免把 MP3 丢进
:用 更可靠
真正容易被忽略的是 MIME 类
型拼写和服务器响应头是否匹配——哪怕 HTML 写对了 type,如果服务器返回 Content-Type: text/plain,Chrome 仍可能拒绝渲染 。