你有使用过picture标签吗?说说它有哪些运用场景

news/2024/11/29 3:04:04/文章来源:https://www.cnblogs.com/ai888/p/18575530

是的,我了解 <picture> 元素。它是一个 HTML5 元素,用于为不同的屏幕尺寸、设备像素比或文件格式提供不同的图像版本。浏览器会根据当前环境选择最合适的图像显示,从而优化页面加载速度和用户体验。

<picture> 元素本身并不显示图像,而是充当一个容器,其中包含多个 <source> 元素和一个 <img> 元素。<source> 元素用于指定不同的图像源,而 <img> 元素则作为 fallback,在浏览器不支持 <picture> 元素或无法匹配任何 <source> 元素时显示。

以下是 <picture> 元素的一些常见应用场景:

  • 响应式图片 (Responsive Images): 这是 <picture> 元素最主要的用途。通过使用 media 属性,可以根据不同的屏幕尺寸或设备方向提供不同的图像。例如,在大屏幕上显示高分辨率图像,在小屏幕上显示低分辨率图像,以减少加载时间和带宽消耗。

  • Art Direction: 有时,仅仅改变图像大小是不够的,还需要根据不同的屏幕尺寸调整图像的内容或构图。<picture> 元素允许根据屏幕尺寸显示不同的图像,从而实现更好的艺术指导。例如,在小屏幕上裁剪掉图像的边缘部分,以突出显示主体内容。

  • WebP 支持: WebP 是一种现代图像格式,可以提供比 JPEG 和 PNG 更小的文件大小和更好的图像质量。然而,并非所有浏览器都支持 WebP。<picture> 元素可以用来提供 WebP 版本的图像,并在不支持 WebP 的浏览器中 fallback 到 JPEG 或 PNG 版本。

  • 视网膜屏幕支持 (Retina Displays): 对于高像素密度的视网膜屏幕,可以使用 <picture> 元素提供更高分辨率的图像,以确保图像清晰锐利。这可以通过使用 srcset 属性和 x 描述符来实现。

示例:

<picture><source media="(min-width: 650px)" srcset="img_large.jpg"><source media="(min-width: 465px)" srcset="img_medium.jpg"><img src="img_small.jpg" alt="My Image">
</picture>

在这个例子中:

  • 如果屏幕宽度大于等于 650px,则显示 img_large.jpg
  • 如果屏幕宽度在 465px 到 649px 之间,则显示 img_medium.jpg
  • 如果屏幕宽度小于 465px,或者浏览器不支持 <picture> 元素,则显示 img_small.jpg

<img srcset> 的区别:

<img srcset> 属性也可以用于提供不同分辨率的图像,但它主要用于根据设备像素比选择合适的图像,而 <picture> 元素则更侧重于根据不同的屏幕尺寸或设备特性提供不同的图像版本,并支持 art direction 和不同格式的图片。 如果只是单纯为了根据屏幕分辨率提供不同大小的图片,使用 <img srcset>sizes 就足够了,更简单方便。 如果需要更精细的控制或 art direction,则应该使用 <picture> 元素。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/843211.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小米10ultra ISO12233 主摄OV48C 不同亮度下比较

夜间室内几乎完全黑的环境 结论 1200w像素,没啥差别,吃满像素。4800w像素,也没啥区别 IMG_20241129_022234.HEIC 仅有闪光灯 质量 低 1.49MB 1/50s IMG_20241129_022238.HEIC 头灯补光 质量 低 1.65MB 1/100s 34 38 4800w像素 IMG_20241129_022250.HEIC 4800w像素 质量低…

Git 快速入门:全面了解与安装步骤

Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 于 2005 年创建,最初是为了更好地管理 Linux 内核开发而设计。Git用于跟踪计算机文件的变化,特别是源代码文件。它允许多个开发者同时合作开发软件项目,同时保留完整的版本历史,确保代码的稳定性和可追溯性。一、关…

如何解决 GoPro 13 拍摄 4K HDR 视频过热关机问题 All In One

如何解决 GoPro 13 拍摄 4K HDR 视频过热关机问题 All In One GoPro 过热关机如何解决 GoPro 13 拍摄 4K HDR 视频过热关机问题 All In OneGoPro 过热关机测试条件 室温 20 度 开启 HLG HDR 画面 16:9 分辨率 4K 帧率 60Hz 开启 GPS HyperSmooth: AutoBoost 比特位深: 10-Bit 比…

【模板】堆

【模板】堆 题目描述 给定一个数列,初始为空,请支持下面三种操作:给定一个整数 \(x\),请将 \(x\) 加入到数列中。 输出数列中最小的数。 删除数列中最小的数(如果有多个数最小,只删除 \(1\) 个)。输入格式 第一行是一个整数,表示操作的次数 \(n\)。 接下来 \(n\) 行,每…

FIFO 缓存算法很简单,但也可以聊挺久

作者:秦怀 1 简介 计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决,这句话就是整个计算机软件以及系统设计中的核心思想,而缓存对这一思想的一种实践。 缓存,总归会受到存储空间的限制,当缓存的空间不足的时候,如果在保持一定系统文档的情况下,还能兼顾到…

安装在C盘的软件移到其它盘

移动Office到D盘为例,Office默认安装位置为"C:Program FilesMicrosoft Office",只需要把“Microsoft Office”这个目录移动到C盘以外的盘符,我们这里以D盘为例。1)在D盘新建一个文件夹“Program Files”,然后按“Shift键不放,点重启电脑”进入安全模式;2)在安…

HCIP-01 RSTP原理与配置

生成树是一个用于局域网中消除环路的协议。运行该协议的设备通过彼此交互信息而发现网络中的环路,并对某些接口进行阻塞以消除环路。由于局域网规模的不断增长,生成树协议已经成为重要的局域网协议之一。 RSTP是生成树协议中的其中一个版本,它在STP的基础上,做了很多的改进…

Ripro V5日主题 v8.3 开心授权版 wordpress主题虚拟资源下载站首选主题模板

简介: RiPro主题全新V5版本,是一个优秀且功能强大、易于管理、现代化的WordPress虚拟资源商城主题。支持首页模块化布局和WP原生小工具模块化首页可拖拽设置,让您的网站设计体验更加舒适。同时支持了高级筛选、自带会员生态系统、超全支付接口等众多功能,无需依赖插件即可实…

从“三好”到“超三好”,智界新S7“卷”回来了!

11月26日,鸿蒙智行旗下智界新S7在华为Mate品牌盛典上市,并公布正式售价。智界新S7正式上市推出3款车型,智界新S7 Pro售价22.98万元,智界新S7 Max售价26.98万元起,智界新S7 Ultra售价31.98万元,首销期即刻下定,至高可享受价值35000元的权益。智界新S7将于12月1日开启交付…

yolo --- 模型训练

文件存放路径数据集标注软件pip install labelimg安装好后启动 labelimgOpen Dir:打开需要标注的图片路径 Change Save Dir:标注文件保存路径 View--->Auto Save mode:把这个勾上就不会每到下一张询问你一次按w可以显示画框的坐标十字 按D键可以切换到下一张 注意标注的标…

Linux物理内存管理

1 物理内存初始化——引导分配器memblockLinux内核启动时,先要初始化物理内存,这个阶段的作用主要是确定物理内存大小,哪些是可用的?哪些是预留的?完成这一阶段工作的是memblock引导分配器。内核启动时初始化物理内存的处理函数调用路径大概是(基于Linux 5.10.1源码查看):…

Threejs入门-灯光

在 Three.js 中,灯光是非常重要的元素之一,它能够模拟现实世界中的光照效果,帮助我们打造更加真实的三维场景。灯光的种类和配置方式可以影响整个场景的视觉效果,在不同的应用中,灯光的使用非常关键。 灯光概述 Three.js 提供了几种常见的光源类型:环境光(Ambient Light…