HTML 里 img 元素的 src 和 srcset 属性的区别详解


Posted in HTML / CSS onMay 21, 2023

img 元素有两个相关的属性

在 HTML 中,img 元素通常用于在网页中插入图片。img 元素有两个相关的属性:src 和 srcset。

src 属性指定图像的 URL,它是必需的。浏览器将使用该 URL 加载图像并将其显示在页面上。

srcset 属性允许您指定一系列不同大小或分辨率的图像文件,以便浏览器可以根据设备的像素密度和屏幕大小选择最合适的图像。srcset 属性的值是一个逗号分隔的列表,其中每个项目都有一个图像文件的 URL,后跟一个空格和一个分辨率描述符。描述符指定图像的分辨率,并告诉浏览器如何选择最合适的图像。通常使用像素密度(如“1x”或“2x”)或图像宽度(如“320w”或“640w”)作为描述符。

在使用 srcset 属性时,可以选择一个默认的图像文件,将其 URL 放在 img 元素的 src 属性中。如果浏览器不支持 srcset 属性或无法选择最合适的图像,则将加载默认的图像文件。

总的来说,src 属性用于指定图像的 URL,而 srcset 属性用于指定一系列不同大小或分辨率的图像文件,以便浏览器可以选择最合适的图像来适应不同的设备和屏幕大小。

下面是一个具体的例子

HTML 里 img 元素的 src 和 srcset 属性的区别详解

HTML 里 img 元素的 src 和 srcset 属性的区别详解

src 里的 NmOQ 是默认值,类型为 zoom:

HTML 里 img 元素的 src 和 srcset 属性的区别详解

渲染图片

在现代浏览器中,当浏览器遇到一个带有 srcset 属性的 img 标签时,它将根据以下步骤来渲染图片:

  • 首先,浏览器会根据 devicePixelRatio (设备像素比)确定屏幕的实际像素密度。例如,Retina 显示屏幕的 devicePixelRatio 为 2。
  • 接下来,浏览器会将 srcset 属性的值解析为一组可用的图片资源和它们的尺寸。每个图片资源都包含了一个图片 URL 和一个描述该图片的宽度,例如:https://example.com/image-1000w.jpg 1000w
  • 浏览器根据屏幕的宽度和每张图片的宽度来计算出最佳的图片大小,这个大小就是要显示的图片的实际像素尺寸。例如,如果设备的宽度为 500px,浏览器会选择一个最接近 500px 的图片资源,例如图片宽度为 600px 的那张图片。
  • 最后,浏览器将选中的图片资源的 URL 赋给 img 元素的 src 属性,然后加载并显示该图片。

小结

浏览器会根据设备像素比、可用图片资源和设备宽度来自动选择和加载最佳的图片,从而实现高清晰度和响应式图片的效果。

以上就是HTML 里 img 元素的 src 和 srcset 属性的区别详解的详细内容,更多关于HTML img元素属性区别的资料请关注三水点靠木其它相关文章!

 
HTML / CSS 相关文章推荐
CSS3实现类似翻书效果的过渡动画的示例代码
Sep 06 HTML / CSS
CSS3实现超慢速移动动画效果非常流畅无卡顿
Jun 15 HTML / CSS
使用CSS3实现一个3D相册效果实例
Dec 03 HTML / CSS
使用HTML5捕捉音频与视频信息概述及实例
Aug 22 HTML / CSS
详解Html5中video标签那些属性和方法
Jul 01 HTML / CSS
HTML5 Canvas标签使用收录
Jul 07 HTML / CSS
用HTML5制作视频拼图的教程
May 13 HTML / CSS
HTML最新标准HTML5总结(必看)
Jun 13 HTML / CSS
localstorage和sessionstorage使用记录(推荐)
May 23 HTML / CSS
浅谈html5与APP混合开发遇到的问题总结
Mar 20 HTML / CSS
HTML5 weui使用笔记
Nov 21 HTML / CSS
关于HTML编码导致的乱码问题
Sep 04 HTML / CSS
CSS list-style-type属性使用方法
May 21 #HTML / CSS
Li list-style-image 图片垂直居中实现方法
May 21 #HTML / CSS
box-shadow单边阴影的实现
VW、VH适配移动端的解决方案与常见问题
May 21 #HTML / CSS
CSS 鼠标选中文字后改变背景色的实现代码
May 21 #HTML / CSS
什么是clearfix (一文搞清楚css清除浮动clearfix)
css清除浮动clearfix:after的用法详解(附完整代码)
May 21 #HTML / CSS
You might like
谈谈新手如何学习PHP
2006/12/14 PHP
PHP 地址栏信息的获取代码
2009/01/07 PHP
php图片上传存储源码并且可以预览
2011/08/26 PHP
PHP中extract()函数的定义和用法
2012/08/17 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
PHP响应post请求上传文件的方法
2015/12/17 PHP
CI框架中类的自动加载问题分析
2016/11/21 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
Javascript var变量隐式声明方法
2009/10/19 Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
2011/03/28 Javascript
jquery 插件学习(四)
2012/08/06 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
在js文件中写el表达式取不到值的原因及解决方法
2013/12/23 Javascript
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
vue 实现复制内容到粘贴板clipboard的方法
2018/03/17 Javascript
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
Python基于select实现的socket服务器
2016/04/13 Python
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
使用pandas对矢量化数据进行替换处理的方法
2018/04/11 Python
对python requests的content和text方法的区别详解
2018/10/11 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
python文件拆分与重组实例
2018/12/10 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
Belvilla法国:休闲度假房屋出租
2020/10/03 全球购物
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
试用期转正后的自我评价
2014/09/21 职场文书
先进个人推荐材料
2014/12/29 职场文书
幼儿园辞职信
2015/05/13 职场文书
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python