4

是否size需要搭配使用srcset?我有一个网站,除了一个 50 像素的板外,还有一个几乎全屏的大图像。此图像的比例不需要根据不同的屏幕比例/尺寸而改变。

目前我正在使用srcset这样的:

<img 
src="bath.jpg"
srcset="bath-large.jpg 1500w, bath-medium.jpg 1000w, bath-small.jpg 600w"
alt="#"
>

这样做的问题是,如果用户在桌面上在压缩浏览器中打开站点(因此将加载小图像)然后使他们的浏览器窗口更大,则小图像将被缩放,因此现在将被像素化. (如果他们刷新页面,他们现在将获得大或中图像,但我怀疑任何人都会在每次调整浏览器窗口大小后刷新页面)

通过使用该size属性,如果调整浏览器窗口大小,它会尝试重新计算要使用的图像吗?如果不是,该size属性的用例是什么?

4

2 回答 2

6

-Attribute sizes(注意 s)可以帮助浏览器决定加载哪个分辨率。在选择分辨率的时候,CSS 可能还没有被渲染,所以我们需要复制这个信息。

它向浏览器声明图像在布局中的空间。它默认为"100vw"“视口的宽度”,这是一个合理的默认值,因为图像可能不会显示得比这更大,所以在最坏的情况下,加载的图像分辨率太大(好于太小) )。

因此sizes,当您使用具有不跨越整个视口宽度(可能取决于断点)的图像的流体布局时,-Attribute 是有意义的。例如,sizes="(min-width: 900px) 33.3vw, 100vw"当浏览器视口大于 900px(或 450px 和 2dpi-Retina-Screen 等)时,这意味着图像采用 3 列布局。

您可以在此处找到有关数学详细信息的精彩文章。

在您的情况下sizes无济于事(尽管您可以编写sizes="calc(100vw - 100px)"。重新下载更大的分辨率是浏览器需要决定的事情,并且每个浏览器可能会以不同的方式实现这一点。Chrome 目前可以(但是它不会反过来,一旦下载了高分辨率,较低的分辨率就会被忽略为“不必要”)。

于 2015-06-25T14:25:27.187 回答
-1

您在 srcset 中指定的大小适用于图像响应式的情况,换句话说,当图像没有固定时。

如果图像被调整大小,支持 srcset 的浏览器将尝试从 srcset 中找到最适合的源图像。

于 2015-06-17T19:50:10.447 回答