HTML <picture>

2019/03/26 | 1分钟阅读 | 更新于 2019/03/26

HTML <picture>

WebP 是一个比较强大的图片格式, 但是 Safari 完全没有要支持的迹象. 要怎么样才能同时提供多个版本的图像呢? <picture> 元素可以通过多个 <source> 提供多个图像资源, 供浏览器选择.

HTML <picture>

Can I Use

Can I Use WebP / <picture>
Can I Use WebP / <picture>

Can I Use WebP 的结果来看, 确实不太理想, 整个 Safari / Safari iOS 都完完全全不支持, 不过我们有另外一套方案来解决这个问题. <picture>, 图上自己也说了:

A responsive images method to control which image resource a user agent presents to a user, based on resolution, media query and/or support for a particular image format

Can I Use Picture

HTML <picture>

一张示例图片
一张示例图片

<picture> 内支持一个 img 元素和多个 source 元素. 浏览器通过 source 元素的 media/type 属性来选择最合适的 source, 并用 source 元素的 srcset 属性替换掉 img 的 src 属性. 而对于完全不支持 picture 的古老版本浏览器, 还有一个 img 元素可以正常工作.

<picture>
    <source type="image/webp" srcset="image.webp" />
    <img src="image.png" />
</picture>
注意图上的 currentSrc
注意图上的 currentSrc

在这里, WebP 对应的 <source> 中的 type 必须指明为 webp 的 MIME-Type, image/webp, 在这种情况下 Safari 才会因为自己不支持 WebP 而 fallback 到 PNG

© 2026 香蕉引擎故障报告

🌱 Powered by Hugo with theme Dream.

关于

要怎么介绍自己呢,🤔。

很早以前是作为 Web 前端在学习的,但是工作第一年就成为了全干工程师。喜欢尝试各种东西,什么都会一点。

一直很喜欢 Ebiten 游戏引擎 ,特别简洁,用它做过一些小东西,可以查看这个分类 。另外特别推荐这个木鱼 ,是一个相对完整的小玩意儿,包含手搓的一个简单的 UI 框架;支持鼠标和键盘操作;有多语言和主题切换功能;同时支持 Web 端和客户端。它的源代码在 bin16/wooden-fish

主题

网站基于 Hugo,当前使用的是 hugo-theme-dream 主题的修改版 ,根据我的需要,做了一些对 PaperMod 的兼容。

我自己也写过主题 ,但是没有别人写的好看。

正在从我的笔记中往外搬运内容

等待更新:

  • 从《锈湖》中学了些什么东西
  • 我拿 React 写解谜游戏的经过
  • 基于 Pocketbase 的 Pocket Memos
  • 数独!