**考察点: 处理响应式图片的方式** (css媒体查询换的是背景图片, 而不是 img 标签的 src)
其实通过使用 img 标签的 srcset 属性,可定义一组额外的图片集合,让浏览器根据不同的屏幕状况选取合适的图片来显示。
如果你的响应式需求比较简单,只需要针对屏幕的不同 dpr (device pixel ratio,设备像素比)来决定图片的显示的话,
dpr 设备像素比, 越高, 能够显示的越清晰 (dpr: 2, dpr: 3)
那么就只要这么写:
html
对于可变宽度的图像,我们使用`srcset`搭配`w`描述符以及`sizes`属性 。
- `w`描述符告诉浏览器列表中的每个图象的宽度。
- `sizes`属性需要至少包含两个值,是由逗号分隔的列表。
根据最新规范,如果`srcset`中任何图像使用了`w`描述符,那么必须要设置`sizes`属性。
`sizes`属性有两个值:
1. 第一个是媒体查询条件;
2. 第二个是图片对应的尺寸值,
在特定媒体条件下,此值决定了图片的宽度。
需要注意是,源图尺寸值不能使用百分比,如果要用100%, `vw`是唯一可用的CSS单位。
html
为 img 定义以上属性后,浏览器的工作流程如下:
1. 检查设备的实际宽度
2. 检查 img 标签的 sizes 属性中定义的媒体查询条件列表,并计算哪个条件最先匹配到
3. 得到图片此时的响应式宽度
4. 加载 srcset 中最接近, 最适合媒体查询匹配到的宽度的图片
注意: 测试时, 清除缓存测试, 因为一旦加载了高清图, 就不会也没有必要, 回过去再用小图替换了
且我们无法确定究竟显示哪张图像,因为每个浏览器根据我们提供的信息挑选适当图像的算法是有差异的。
发布者:admin,如若转载,请注明出处:https://ai1024.vip/39200.html