html - 为不同的屏幕尺寸和密度定义响应式图像的最佳方法是什么
问题描述
我正在尝试根据用户的设备屏幕尺寸和屏幕密度找到在我的网站上显示响应式图像的最佳方式。我正在尝试按照优先级顺序找到一种方法来制定以下规则:
如果设备屏幕窄于 624px 或低密度 (1x),请加载小 .webp 图片(如果浏览器无法管理 .webp 图片,请加载小 .png)
如果设备屏幕宽于 623 像素或高密度 (2x),请尽可能加载大的 .svg 图像或 .webp 图像。如果浏览器无法管理 .svg 或 .webp 图像,请改为加载大的 .png。
上述规则是我能想到的最佳核心网络生命体征结果和最小化图像大小负载的最佳规则。
我想出了以下代码,它在可以处理 .webp 图像的小屏幕(小于 624 像素)的设备上运行良好:
<picture>
<source srcset="small.webp" media="(max-width: 623px)" type="image/webp">
<source srcset="big.svg" type="image/svg+xml">
<source srcset="small.webp" type="image/webp">
<IMG src="small.png" srcset="big.png 2x" width="683" height="967" alt="cat image"></picture>
但我似乎无法找到仅在高密度屏幕上加载 .svg 图像的方法。我为 .svg 定义尝试了以下代码,但即使是低密度屏幕也使用它:
<source srcset="big.svg 2x" type="image/svg+xml">
根据我上面所述的规则,我找不到正确区分图像并确定其优先级的方法。
任何人都可以帮忙吗?
解决方案
推荐阅读
- c - c语言中带有信号量的多线程printf()
- c++ - 抽象类继承C++中的另一个抽象类
- verilog - 检查genvar在verilog中是否为奇数
- python - 基于 2D 选择数组(带有索引值)选择 3D 数组中的值
- python - 如何在jupyter笔记本中使用循环在groupby值上获取单独的折线图
- java - 为什么喀土穆的偏移量为 0?TimeZones 中是否存在错误?
- scala - 如何在数据集中添加关注者的数量(最活跃的用户)
- mysql - 如何使用 join 获取使用 mysql 的最近 15 天未售出的产品。
- c# - 找到未填充 StreamGeometry 和 RectangleGeometry 之间交集的可靠方法
- swift - 通过解码器查看还有哪些数据需要解码