发布于 2026-01-06 0 阅读
0

HTML Picture Element Responsive Images DEV's Worldwide Show and Tell Challenge Presented by Mux: Pitch Your Projects!

HTML 图片元素响应式图像

由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!

今天我们将探讨一下HTML Picture element。它可用于实现原生响应式图像支持。

具体做法是,我们将普通的img标签包裹在一个picture元素内,然后添加srcset图片。

然后,它将通过媒体查询来定义要显示的图像。

HTML 图片元素

好的,我们开始吧!

在这个例子中,我们将使用极端情况,通常情况下,你只会使用原始图像的修改版本,但尺寸更小或方向不同。

<picture>
  <source
    media="(min-width: 650px)"
    srcset="https://images.unsplash.com/photo-1589965716319-4a041b58fa8a?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1867&q=80"
  />
  <source
    media="(min-width: 465px)"
    srcset="https://images.unsplash.com/photo-1534235261404-7625cd79bdb9?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1950&q=80"
  />
  <img
    src="https://images.unsplash.com/photo-1537151608828-ea2b11777ee8?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=939&q=80"
    alt="A amazing corgi dog"
  />
</picture>
Enter fullscreen mode Exit fullscreen mode

接下来我们应该会看到以下内容:

  • 屏幕上方650像素处——山上的柯基犬
  • 屏幕分辨率介于 465 和 650 像素之间 - 楼梯上的柯基犬
  • 屏幕小于 465 - 柯基幼犬!

这难道不令人惊叹吗!

为了使此功能更加完善,添加loading="lazy"

欢迎在 Codepen 上查看这些柯基犬。

浏览器支持

这是一个超酷的功能,但正如预期的那样,IE 和 Opera Mini 并不支持。
不过!它们会回退到默认图片!所以使用起来并没有什么问题!

图片元素支持

感谢阅读,让我们保持联系!

感谢您阅读我的博客。欢迎订阅我的电子邮件简讯,也可以在FacebookTwitter上关注我。

文章来源:https://dev.to/dailydevtips1/html-picture-element-responsive-images-29m8