img标签的srcset属性

更新日期: 2022-06-06阅读: 913标签: 标签

网站中图片信息需要使用img标签来展示,img元素中有一个很少用的属性 -srcset,该属性用于浏览器根据宽、高和像素密度来加载相应的图片资源。

显示的图像可以通过srcset属性来实现响应式,为不同尺寸的设备提供不同尺寸的图像,移动设备显示小尺寸图像,平板显示中等尺寸的图像,台式机显示大尺寸的图像,这样就避免在较小的设备上下载不必要的图像数据,并提高网站在这些设备上的性能。


srcset属性:

格式:

图片地址 宽度描述w | 像素密度描述x,多个资源之间用逗号分隔。例如:

<img src="small.jpg " srcset="big.jpg 1440w, middle.jpg 960w, small.jpg 1x" />

上面的例子表示浏览器宽度达到 960px 则加载 middle.jpg ,达到 1440px 则加载 big.jpg,否则就显示small.jpg图片。当然如果浏览器不支持 srcset 属性,则默认为 src 属性。

注意:

w是对该图片宽度的描述,而且这会直接影响到浏览器对于图片的选择,浏览器选择的标准就是根据sizes和dpr计算所得准确值在w值增大和减小的两个方向上选择一个比值(永远是大数/小数)更小的一个图片显示。

像素密度描述只对固定宽度图片有效。


sizes属性

在浏览器下载html 页面不久之后,他将会继续请求css 和 js 资源 img 资源, 但是css,js,img的请求没有先后之分 所以浏览器并不知道页面的布局,所以对图片的尺寸也一无所知,浏览器唯一知道的是视口的尺寸,但是这并不足以 给浏览器选择最佳的图片源。

img的sizes属性作用就在于告诉浏览器根据【屏幕尺寸】和【像素密度】的计算值从srcset 中选择最佳的图片源。

格式:

媒体查询 宽度描述(支持px),多条规则用逗号分隔。

<img src="img/gun.png" srcset=" img/bg_star.jpg 1200w,  img/share.jpg 800w,  img/gun.png 320w"
sizes="(max-width: 320px) 300w, 1200w"/>

第一个部分是【媒体情况】,他不是媒体查询,但是跟媒体查询类似,用括号包括起来。 第二个部分是【长度单位的值】 ,可以是px, vw或者其他单位。

上面的例子表示浏览器视口为 320px 时图片宽度为 300px,其他情况为 1200px。

sizes是如何起作用的呢?

首先浏览器会读取 sizes 然后根据媒体情况来选择,如果匹配到某个值,就根据这个值的长度值单位乘以屏幕像素密度,最终得出来的值再与srcset 中的宽度描述匹配来选择图片。

1. 根据媒体情况 选择 size 中的值。
2. 将值中的长度值 * 屏幕像素密度得到 最终宽度
3. 最终宽度去匹配 srcset 中的宽度描述,得到最终图片

注意:

为不同视口宽度选择图像的决策逻辑可能因浏览器而异,你可能会看到不同的结果。

为较小的设备下载较少的图像数据,可以让浏览器快速显示这些图像,从而提高网站的性能。


总结 

使用响应式图像可以避免下载不必要的图像数据,从而减少网站的加载时间并提供更好的用户体验。唯一的缺点是我们放弃了对浏览器的完全控制,让浏览器选择要在特定视口宽度下显示的图像。

每个浏览器都有不同的策略来选择适当的响应式图像。这就是为什么你可能会在不同的浏览器中,看到以相同分辨率加载的不同图像。放弃对浏览器的控制,根据视口宽度显示图像以获得性能优势,你需要在实际应用时做权衡考虑。

一句话总结: 

1、img 标签的 srcset 可以用来处理页面在不同像素密度终端设备上对图片的选择性展示 

2、sizes 作用就在于告诉浏览器根据【屏幕尺寸】和【像素密度】的计算值从srcset 中选择最佳的图片源。

3、在css中我们可以使用image-set()属性来实现,具体内容请点击查看详情

链接: https://www.fly63.com/article/detial/11663

Html中a标签用法总结:创建email,电话,描点链接等。以及防止链接被搜索引擎收录

a标签是我们常用的一个标签之一,这篇文章主要讲解如何使用a来创建email,电话,描点链接等。以及防止链接被搜索引擎收录。

web标签语义化的理解_web语义化是什么意思

Web语义化,使用语义恰当的标签,可以让页面具有良好的结构,页面元素具有良好的含义,从而让人和机器都能快速理解。语义化的web页面一方面可以让机器在更少的人类干预情况下收集并研究网页的信息,从而可以读懂网页的内容

HTML中<base>标签的正确使用

<base> 标签必须位于 <head> 元素内部,在一个文档中,最多能使用一个 <base> 标签,使用了<base>标签的链接后,其他链接必须在<base>标签的链接里面,不然将无法找到。

使用Map标签指定点击区域时的兼容性问题

因为map标签用的较少,而常用的label标签中的for属性,是不需要加#的,加上了反而会有错。当然,label和map中的用法也不同,不论如何,引以为戒

html 标签优化_如何优化网站HTML标签代码优化

如何优化网站HTML标签代码优化?选用合适的标签、htm5提供了很多类型的input的type类型、使用html5语义化标签等

js动态添加html标签和属性_手动插入meta、script、div、img等标签

web网页是由 html标签一层层组成的,js也可以动态添加对应的标签,比如mate标签、script标签、div标签、img标签等,动态创建的方法基本都差不多,下面将简单介绍下如何实现

head里两个重要标签base和meta

<base>我们并不常用的一个标签,但是一旦用得不当会带来灾难性的影响。meta标签日常开发中我们用得更多的是meta标签,分为3类:具有charset属性的meta 、带有http-equiv 属性的 meta

JSTL学习总结

在mvnrepository中,直接搜索jstl,,找到下载量最高的,下载1.2版本。下载完导入到项目里面就好了。jstl是apache对EL表达式的扩展,使用需导jar包

<script>标签的属性

src定义引用外部脚本的URI,这可以用来代替直接在文档中嵌入脚本。指定了 src 属性的script元素标签内不应该再有嵌入的脚本。type该属性定义script元素包含或src引用的脚本语言。

10 个不常用但你有必要知道的 html 标签

HTML 也被称为超文本记语言( hyper text markup language )是为网页创建和其他可在网页浏览器中看到的信息设计的一种标记语言。HTML 被用来结构化信息,如标题、段落和列表等,也可用来在一定程度上描述文档的外观和语义。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!