为什么srcset调整图像大小?

迈克尔·加列戈

我在使用srcset时有一种奇怪的行为,并且很难理解它。我已经完成了CodePen:http://codepen.io/anon/pen/dYBvNM

问题是我有一组由Shopify生成的图像,它们的大小各不相同:240px,480px,600px和1024px。问题是这些是最大大小。这意味着,如果商家上传的图片较小(例如600px),则1024px版本将是600px,而不是1024px。我无法事先知道,所以我被迫简单地将所有大小添加为“最佳情况”:

<img
     src="my_1024x1024.jpg"
     srcset="my_240px.jpg 240w, my_480px.jpg 480w, my_600px.jpg 600w, my_1024px 1024w"
     sizes="(max-width: 35em) 100vh, 610px"
     >

当图像确实小于预期的最大尺寸时,就会发生怪异现象。在这种情况下,浏览器将正确选择合适的图像(在这种情况下,它将在15英寸视网膜上选择1024版本),但是由于该图像实际上小于1024px(我已指出的尺寸),因此浏览器实际上是将图像的大小调整为小于其原始分辨率。

您可以在CodePen http://codepen.io/anon/pen/dYBvNM比较这两个图像是1024px版本,但在使用srcset的图像中,渲染实际上比仅使用src的渲染小。我曾期望它将使图像保持其原始分辨率。

您能解释一下为什么吗?

谢谢!

zcorpan

它的工作方式是通过将给定值除以sizes属性的有效大小,将“ w”描述符计算为“ x”描述符因此,例如,如果选择1024w,尺寸为610px,则1024/610 = 1.67868852459016x,这是浏览器将应用的图像的像素密度。如果图像实际上不是1024像素宽,那么浏览器仍将应用相同的密度,这将“缩小”图像,因为在有效情况下,当图像宽度和'w'描述符匹配时,这是正确的做法。

您必须使描述符与资源宽度匹配。用户上载图像时,您可以检查其宽度并将其用作最大的描述符sizes(如果它小于1024),并删除大于给定图像宽度的描述符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

调整srcset图像大小的正确方法

来自分类Dev

为什么将JFrame调整大小后添加图像

来自分类Dev

我为什么要调整上传图像的大小

来自分类Dev

Xcode 5,为什么不调整图像大小?

来自分类Dev

为什么调整大小会导致图像尺寸减小

来自分类Dev

为什么 cv::drawKeypoints 会调整我的图像大小?

来自分类Dev

为什么我的图像调整大小代码总是生成完整的黑色输出图像?

来自分类Dev

为什么需要调整第一个图像的大小以融合两个图像?

来自分类Dev

为什么我的图像调整大小代码总是生成完整的黑色输出图像?

来自分类Dev

为什么以CSS为中心时我的图像停止调整大小

来自分类Dev

为什么在ListView中显示时,最初异步调整大小的图像太大?

来自分类Dev

为什么在Pillow-python中调整图像大小会删除Image.format?

来自分类Dev

蜻蜓为什么要一遍又一遍地调整图像大小?

来自分类Dev

为什么图像调整大小和翻转功能不起作用?

来自分类Dev

为什么我调整剪切图像大小的脚本不起作用?

来自分类Dev

通过CSS调整大小时,为什么我的图像缩小得太多了?

来自分类Dev

为什么在OpenCv中调整图像大小会减少相机校准的重投影误差?

来自分类Dev

为什么OpenGL调整大小的图像看起来像素化?

来自分类Dev

为什么我调整剪切图像大小的脚本不起作用?

来自分类Dev

为什么在ListView中显示时,最初异步调整大小的图像太大?

来自分类Dev

为什么在使用 Chrome for Android 在画布中调整大小时图像会变得很暗?

来自分类Dev

如果调整了浏览器窗口的大小,是否可以重新计算使用的“ srcset”图像?

来自分类Dev

为什么这个UISearchBar会被调整大小?

来自分类Dev

为什么按原样实施调整大小?

来自分类Dev

为什么不调整画布大小?

来自分类Dev

为什么不能调整NTFS分区的大小?

来自分类Dev

为什么JInterFrame不调整大小?

来自分类Dev

为什么将Imagemagick或GraphicsMagick调整为较小尺寸时会增加我的PNG图像的MB大小?

来自分类Dev

为什么.JSX脚本无法识别要批量调整大小的文件夹中的每个图像?

Related 相关文章

  1. 1

    调整srcset图像大小的正确方法

  2. 2

    为什么将JFrame调整大小后添加图像

  3. 3

    我为什么要调整上传图像的大小

  4. 4

    Xcode 5,为什么不调整图像大小?

  5. 5

    为什么调整大小会导致图像尺寸减小

  6. 6

    为什么 cv::drawKeypoints 会调整我的图像大小?

  7. 7

    为什么我的图像调整大小代码总是生成完整的黑色输出图像?

  8. 8

    为什么需要调整第一个图像的大小以融合两个图像?

  9. 9

    为什么我的图像调整大小代码总是生成完整的黑色输出图像?

  10. 10

    为什么以CSS为中心时我的图像停止调整大小

  11. 11

    为什么在ListView中显示时,最初异步调整大小的图像太大?

  12. 12

    为什么在Pillow-python中调整图像大小会删除Image.format?

  13. 13

    蜻蜓为什么要一遍又一遍地调整图像大小?

  14. 14

    为什么图像调整大小和翻转功能不起作用?

  15. 15

    为什么我调整剪切图像大小的脚本不起作用?

  16. 16

    通过CSS调整大小时,为什么我的图像缩小得太多了?

  17. 17

    为什么在OpenCv中调整图像大小会减少相机校准的重投影误差?

  18. 18

    为什么OpenGL调整大小的图像看起来像素化?

  19. 19

    为什么我调整剪切图像大小的脚本不起作用?

  20. 20

    为什么在ListView中显示时,最初异步调整大小的图像太大?

  21. 21

    为什么在使用 Chrome for Android 在画布中调整大小时图像会变得很暗?

  22. 22

    如果调整了浏览器窗口的大小,是否可以重新计算使用的“ srcset”图像?

  23. 23

    为什么这个UISearchBar会被调整大小?

  24. 24

    为什么按原样实施调整大小?

  25. 25

    为什么不调整画布大小?

  26. 26

    为什么不能调整NTFS分区的大小?

  27. 27

    为什么JInterFrame不调整大小?

  28. 28

    为什么将Imagemagick或GraphicsMagick调整为较小尺寸时会增加我的PNG图像的MB大小?

  29. 29

    为什么.JSX脚本无法识别要批量调整大小的文件夹中的每个图像?

热门标签

归档