问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

响应式网页中图片的处理方式

发布网友 发布时间:2022-04-19 10:52

我来回答

5个回答

懂视网 时间:2022-05-14 07:15

所谓的响应式设计,是指在不同的屏幕分辨率,不同的像素密度比,不同宽度的终端设备中,网页布局可以自适应的调整。响应式设计的本意是使原本PC上的网站兼容移动终端,大部分响应式网页是通过媒体查询,加载不同样式的CSS文件实现的。这样的弹性化布局使网站在不同的设备终端布局都比较合理。本文主要介绍了详解HTML5中的picture元素响应式处理图片,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。

虽然响应式设计的好处多多,但是也有诸多缺陷。由于PC端和移动终端访问的是同一个网站,PC端可以不计较流量限制,但是移动端不可能不计较。

为适配不同终端机型的屏幕宽度和像素密度,我们一般会使用如下方法设置图片的CSS样式:

<style>
 img{
 max-width:100%;
 height:auto;
 }
</style>

将图片的最大宽度设置为100%,以确保图像不会超出其父级元素的宽度,如果父级元素的宽度发生改变,图片的宽度也随之改变,height:auto 可以确保图片的宽度发生改变时,图片的高度会依据自身的宽高比例进行缩放。

这样当我们在移动设备上访问响应式网页里的图片时,只是把图片的分辨率做了缩放,下载的还是PC端的那张大图,这样不仅浪费流量,而且浪费带宽,而且会拖慢网页的打开速度,严重影响用户的使用体验。

新的解决方案:<picture>

  1. <picture>是HTML5的一个新元素;

  2. 如果<picture>元素与当前的<audio>,<video>元素协同合作将增强响应式图像工作的进程,它允许在其内部设置多个<source>标签,以指定不同的图像文件名,根据不同的条件进行加载;

  3. <picture>可以根据不同的条件加载不同的图像,这些条件可以是视窗当前的高度(viewport),宽度(width),方向(orientation),像素密度(dpr)等;

举几个栗子

如下栗子中针对不同屏幕宽度加载不同的图片;当页面宽度 在320px到640px之间时加载minpic.png;当页面宽度大于640px时加载middle.png

<picture>
 <source media="(min-width: 320px) and (max-width: 640px)" srcset="img/minpic.png">
 <source media="(min-width: 640px)" srcset="img/middle.png">
 <img src="img/picture.png" alt="this is a picture">
</picture>

2.如下栗子中添加了屏幕的方向作为条件;当屏幕方向为横屏方向时加载_landscape.png结尾的图片;当屏幕方向为竖屏方向时加载 _portrait.png结尾的图片;

<picture>
 <source media="(min-width: 320px) and (max-width: 640px) and (orientation: landscape)" srcset="img/minpic_landscape.png">
 <source media="(min-width: 320px) and (max-width: 640px) and (orientation: portrait)" srcset="img/minpic_portrait.png">
 <source media="(min-width: 640px) and (orientation: landscape)" srcset="img/middlepic_landscape.png">
 <source media="(min-width: 640px) and (orientation: portrait)" srcset="img/middlepic_portrait.png">
 <img src="img/picture.png" alt="this is a picture">
</picture>

3.如下栗子中添加了屏幕像素密度作为条件;当像素密度为2x时加载_retina.png 2x 的图片,当像素密度为1x时加载无retina后缀的图片;

<picture>
 <source media="(min-width: 320px) and (max-width: 640px)" srcset="img/minpic.png,img/minpic_retina.png 2x">
 <source media="(min-width: 640px)" srcset="img/middle.png,img/middle_retina.png 2x">
 <img src="img/picture.png,img/picture_retina.png 2x" alt="this is a picture">
</picture>

4.如下栗子中添加图片文件格式作为条件,当支持webp格式图片时加载webp格式图片,当不支持时加载png格式图片;

<picture>
 <source type="image/webp" srcset="img/picture.webp">
 <img src="img/picture.png" alt="this is a picture">
</picture>

5.如下例子中添加宽度描述;页面会根据当前尺寸选择加载不大于当前宽度的最大的图片;

<img src="picture-160.png" alt="this is a picture"
 sizes="90vw" 
 srcset="picture-160.png 160w,
  picture-320.png 320w,
  picture-640.png 640w,
  picture-1280.png 1280w">

6.如下例子中添加sizes属性;当窗口宽度大于等于800px时加载对应版本的图片;

<source media="(min-width: 800px)"
 sizes="90vw" 
 srcset="picture-landscape-640.png 640w,
  picture-landscape-1280.png 1280w,
  picture-landscape-2560.png 2560w">
<img src="picture-160.png" alt="this is a picture"
 sizes="90vw" 
 srcset="picture-160.png 160w,
  picture-320.png 320w,
  picture-640.png 640w,
  picture-1280.png 1280w">

兼容性:

目前只有Chrome , Firefox , Opera 对其兼容性较好,具体兼容性如图:

优点:

  1. 加载适当大小的图像文件,使可用带宽得到充分利用;

  2. 加载不同剪裁并具有不同横纵比的图像,以适应不同宽度的布局变化;

  3. 加载更高的像素密度,显示更高分辨率的图像;

步骤:

  1. 创建<picture></picture>标签;

  2. 在这些标签内创建一个你想用来执行任何一个特性的<source></scource>标签;

  3. 添加一个media属性,用来包含你想要的特性,如宽度(max-width,min-width),方向(orientation)等;

  4. 添加一个srcset属性,属性值为相应的图像文件名称,进行加载。如果你想提供不同的像素密度,例如Retina显示屏,可以添加额外的文件名到srcset属性中;

  5. 添加一个回退的<img>标签;

<picture>的工作原理

<picture>语法

由上面的示例代码可知,在没有引入js和第三方库,CSS中没有包含media queries的情况下,<picture>元素可以实现只用HTML来声明响应式图片;

<source>元素

<picture>标签它本身没有属性。神奇的地方是<picture>被用来当做<source>的容器。
<source>元素,是用来加载多媒体的比如视频和音频,已经被更新用到图片的加载并且一些新的属性已经被添加:

srcset (必需)

接受单一的图片文件路径(如:srcset=”img/minpic.png”).

或者是逗号分隔的用像素密度描述的图片路径(如:srcset=”img/minpic.png,img/minpic_retina.png 2x”),1x 的描述是默认不使用的。

media (可选)

接受任何验证的media query,你可以看到在CSS @media选择器(如:media=”(min-width: 320px)”).

在之前的<picture>语法的例子里已经用到了。

sizes(可选)

接收单一的宽度描述(如:sizes=”100vw”)或者单一的media query宽度描述(如:sizes=”(min-width: 320px) 100vw”).

或者逗号分隔的media query对宽度的描述(如:sizes=”(min-width: 320px) 100vw, (min-width: 640px) 50vw, calc(33vw - 100px)”) 最后的一个被当做默认的。

type(可选)

接受支持的MIME类型(如: type=”image/webp” or type=”image/vnd.ms-photo”)

浏览器会根据这些提示和属性来加载确切的图片资源。根据标签的列表顺序。浏览器会使用第一个合适的<source>元素并忽略掉后面的<source>标签。

添加最后的<img>元素

<img>元素在<picture>内部用来当浏览器不支持时或者没有源标签匹配时的显示。在<picture>内使用<img>标签是必须得,如果你忘记了,将不会有图片显示出来。

用<img>来声明默认的图片显示。将<img>标签放到<picture>内的最后,浏览器在找到<img>标签之前会忽略<source>的声明。这个图片标签也需要你写上它的alt属性。

文中借鉴了很多其他的文章,到这里针对于picture的所有介绍就结束了,那么现在就去试试它吧~

相关推荐;

实例讲解响应式框架Bootstrap栅格系统

几款适合web程序员的响应式框架

HTML5响应式banner制作教程

热心网友 时间:2022-05-14 04:23

图片分为背景图片和通过img标签引入的图片,前者可以通过media query自动的切换不同分辨率的版本,但是在不支持background image size的浏览器中背景图片无法无级的调整大小(也就是在media query切换css的点上可以换一张不同分辨率的图,但是没法儿获得两张分辨率中间大小的版本),而且在很多情况下(比如cms中)并不适合用背景图片。

如果是img标签引入的图片,可以使用延迟加载的方式来加载,在实际加载图片之前先用js检查窗口宽度,然后加载不同分辨率的图片,比如宽度<=480,就加载80px宽度的图片,480 < 宽度 <= 768,加载120px的图片, 宽度> 768则加载160px的图片,如果宽度是600px怎么办呢,通过百分比来缩放120px的图片达到合适的结果。

这样做的好处是对于移动设备来说,下载的图片会小一些,减少网页加载的时间。但是问题是竖屏向横屏切换或者扩大浏览器窗口宽度时图片会由于放大而产生一定的模糊感。

我觉得响应式设计中对于图片的考虑应该从布局设计就开始,尽量使图片在各个窗口宽度下的尺寸不要相差过大,通过排布更多的内容而不是扩大图片的尺寸来填充由于浏览器窗口扩大带来的空间。这样可以有效的减少图片放大模糊的问题。

热心网友 时间:2022-05-14 05:41

1、首先图片分为背景图片和通过img标签引入的图片,前者可以通过media
query自动的切换不同分辨率的版本,但是在不支持background
image
size的浏览器中背景图片无法无级的调整大小(也就是在media
query切换css的点上可以换一张不同分辨率的图,但是没法儿获得两张分辨率中间大小的版本),而且在很多情况下(比如cms中)并不适合用背景图片。
2、是img标签引入的图片,可以使用延迟加载的方式来加载,在实际加载图片之前先用js检查窗口宽度,然后加载不同分辨率的图片,比如宽度<=480,就加载80px宽度的图片,480
<
宽度
<=
768,加载120px的图片,
宽度>
768则加载160px的图片,如果宽度是600px怎么办呢,通过百分比来缩放120px的图片达到合适的结果。这样做的好处是对于移动设备来说,下载的图片会小一些,减少网页加载的时间。但是问题是竖屏向横屏切换或者扩大浏览器窗口宽度时图片会由于放大而产生一定的模糊感。
3、响应式设计中对于图片的考虑应该从布局设计就开始,尽量使图片在各个窗口宽度下的尺寸不要相差过大,通过排布更多的内容而不是扩大图片的尺寸来填充由于浏览器窗口扩大带来的空间。这样可以有效的减少图片放大模糊的问题。
4、图片设置
max-width
至于是不是要设置多张不同尺寸的图片
应该是看你的需求到底是针对哪些人群
如果设置多张建议两张就够了
设置一张稍微大点的
等比缩放也是不错的选择个人习惯是设置宽度跟max-width

热心网友 时间:2022-05-14 07:16

可以给图片li img{ width:100%;height:auto}

热心网友 时间:2022-05-14 09:07

1、首先图片分为背景图片和通过img标签引入的图片,前者可以通过media query自动的切换不同分辨率的版本,但是在不支持background image size的浏览器中背景图片无法无级的调整大小(也就是在media query切换css的点上可以换一张不同分辨率的图,但是没法儿获得两张分辨率中间大小的版本),而且在很多情况下(比如cms中)并不适合用背景图片。
2、是img标签引入的图片,可以使用延迟加载的方式来加载,在实际加载图片之前先用js检查窗口宽度,然后加载不同分辨率的图片,比如宽度<=480,就加载80px宽度的图片,480 < 宽度 <= 768,加载120px的图片, 宽度> 768则加载160px的图片,如果宽度是600px怎么办呢,通过百分比来缩放120px的图片达到合适的结果。这样做的好处是对于移动设备来说,下载的图片会小一些,减少网页加载的时间。但是问题是竖屏向横屏切换或者扩大浏览器窗口宽度时图片会由于放大而产生一定的模糊感。
3、响应式设计中对于图片的考虑应该从布局设计就开始,尽量使图片在各个窗口宽度下的尺寸不要相差过大,通过排布更多的内容而不是扩大图片的尺寸来填充由于浏览器窗口扩大带来的空间。这样可以有效的减少图片放大模糊的问题。
4、图片设置 max-width 至于是不是要设置多张不同尺寸的图片 应该是看你的需求到底是针对哪些人群 如果设置多张建议两张就够了 设置一张稍微大点的 等比缩放也是不错的选择个人习惯是设置宽度跟max-width
响应式网页中图片的处理方式

2、是img标签引入的图片,可以使用延迟加载的方式来加载,在实际加载图片之前先用js检查窗口宽度,然后加载不同分辨率的图片,比如宽度&lt;=480,就加载80px宽度的图片,480 &lt; 宽度 &lt;= 768,加载120px的图片,宽度&gt; 768则加载160px的图片,如果宽度是600px怎么办呢,通过百分比来缩放120px的图片达到合适的...

站点图标生成

上海数都信息科技有限公司是一家科技型的设计公司,团队深耕企业品牌设计服务已有十余年,已助力多家企业塑造其品牌形象及体验,服务内容含:LOGO设计/VI设计/产品包装设计/导视店面门头及空间设计,吉祥物设计/海报设计等。 我们的目标是帮助小...

如何使用HTML5的picture元素处理响应式图片

目前最常见的解决方案作为一般规则,你会在任何响应式网站中发现以下CSS样式:1img {2max-width: 100%;3height: auto;4}此代码使用max-width:100%的设置,以确保图像永远不会超越其父容器的宽度。如果父容器的宽度收缩小于图像的宽度,图像将随之缩小。height:auto的设置可以确保当有这种情况发生时,图...

什么是响应式网页图片库设计的注意事项?

1、轮播幻灯片:尽量隐藏导航 2、避免使用大量肖像类图片 3、在移动端上支持手势操作 4、在移动端上禁用lightbox效果 5、让导航元素低调不招摇 6、不要让图片和视频混淆 7、确保图片显示尺寸不要超过原始图片的最大宽度 8、图片缩放 9、避免使用图片标题 ...

响应式网站有什么弊端

第一:响应式网站不能自由布局,做不到移动端的优化体验。响应式网页不能自由布局,文字或图片元素只能删减,不能增加,图文只能更新,无法拖动位置,图片无法放大或者缩小,也就是说所有的元素都是被锁死的。第二:响应式设计对搜索关键词优化和排名不友好。搜索引擎对于PC网站和移动网站的收录和关键处排...

如何在游戏网页中实现响应式设计

可以使用srcset属性或picture元素来实现响应式图片,以便在不同设备屏幕上显示不同的分辨率。3.优化游戏各部分的加载速度游戏网页中的各部分,例如游戏音频、视频等,往往需要较长的加载时间。对于移动设备用户而言,这无疑是一个令人厌烦的体验。因此,在实现游戏网页的响应式设计时,应该采用合适的优化措施...

优秀网站首页设计的四大布局技巧

2、一屏以内 一张照片代表着一个世界,一屏以内的这种布局方式让读者的视线不会再受到框线的限制,比起响应式布局方式,这种布局的确多了些开阔和大气的感觉。此外,网页主画面部分还可以灵活处理,既可以向上拓展到logo和导航的顶部位置,也可以向下拓展到内容区域,这种布局方式也是非常常见的布局方式。3...

响应式网页是指,一个网页会根据用户浏览器设备

流式布局则是一种使用相对单位(如百分比)而非固定像素值来设置元素宽度的方法,从而使布局能够根据需要伸缩。灵活的图片和媒体则确保图像和其他媒体内容也能随着屏幕尺寸的变化而适当地调整大小。一个典型的响应式网页例子是,当用户在桌面电脑上访问时,网页可能会显示为三栏布局,包含侧边栏、主要内容...

如何在游戏网页中实现响应式图片

例如,可以使用一张高分辨率的图片来适配大屏幕设备,同时也应该为小屏幕设备提供低分辨率的图片。二、使用picture元素picture元素是HTML中用于响应式设计的一种新方案,它可以根据不同的屏幕尺寸,动态调整图片大小和质量。在游戏网站中,使用picture元素可以为不同的设备提供完全不同的图片。三、适当调整图片...

响应式网页的主流技术有哪些?

同时,提出了大分辨率和小分辨率的图像设计方案。结合媒体查询技术,大分辨率设备使用大分辨率图像,小分辨率设备使用小分辨率图像,即大屏幕加载大图像,小屏幕加载小图像。响应式web的主流技术有利于提高web页面的加载速度,节省存储空间。引导框架是一个用于前端开发的开放源码工具包。它是响应式Web设计中最...

响应式网站设计中常见的3个问题

本来用户选择手机浏览网站就是奔着快速、便捷去的,现在却要滑动滚动条查看全图,这种浏览体验对用户来说实在是太糟糕了,一点都没有发挥响应式布局的优点。这个问题要怎么解决呢?我们可以给图片设置相关单位,或者使用支持响应式的框架(比如Bootstrap),用响应式图片class名来控制(例如class="img-responsive...

别人的网页怎么做响应式 简单的响应式网页实例 响应式网页如何实现 什么叫响应式网页 响应式网页开发 如何编写响应式网页 响应式网页需要什么技术 响应式网页是什么意思 响应式网页怎么设计
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电动车遥控锁住了遥控丢了怎么办 ...我想知道能不能先用4:3模板,然后改成16:9的比例? word的标题底纹是怎么弄的word的标题底纹是怎么弄的图片 身份证的证照编号是多少 华晨雨张杰林俊杰徐良属于什么类型 QQ空间发说说..手机root了改哪个文件能自定义手机型号尾巴.._百度知... ...如果说人们遇见这种鸟会怎么样?是好或不好? 我是冠军青岛啤酒·我是冠军 救救我家哈士奇老打喷嚏流浓涕和喘急谢谢 哈士奇状态不好没精神怎么办?警惕犬瘟疾病! 网站图片如何处理 怎样 网页 后台管理 图片 PHOTOSHOP的用途是什么? 网站图片优化需要注意哪些 详细&#xFFFD;0&#xFFFD;3 404 Not Found 如何在网页中编辑图片? 有哪些在线PS网站工具,可以处理图片和抠图的? 网站多图片处理方式探讨 有哪些在线图片制作网站,图片如何处理呢? 网站建设中需要掌握图片处理技巧有哪些 适合制作网页的图片处理方法? 浅谈如何进行网站图片优化 网站制作时,如何处理要上传的图片 网页图片处理用什么软件 有哪些网站支持在线处理图片的? 使用在线图片制作网站怎么处理图片啊? 怎样拆信封看不出痕迹? 怎样折信封? 怎样制作一个小信封? 写信时信封和正文的格式? 笔记本2根内存条是不是要一样的,能不能用2根不同牌子或是不同频的内存条 网站后台图片处理 哪个网站在线制作图片比较好? 网站后台编辑图片在前端模糊,如何处理? 高德导航怎样投屏到车上 高德地图导航怎么连接到汽车显示屏上 高德地图怎么投屏到车载导航 奥迪Q3怎么投屏高德地图 高德地图怎么投到车载屏幕上 小米高德地图怎么投屏凯美瑞 有办法将手机上的高德导航映射到车上屏幕么 为什么投屏不可以使用高德地图?其他的都可以用呢? 手机高德地图怎么投屏到众泰sr9汽车车机上? 请问台式电脑内存组成双通道的两个内存条一定要同型号同品牌的吗? 怎样安装多个版本的QQ? 如何安装低版本的qq 如何安装QQ 如何安装新的qq版本 电脑上怎么安装不同版本的QQ啊 怎么安装低版本的QQ