当前位置: 首页 > 知识库问答 >
问题:

响应图像,图片vs img与srcset,后备问题

万高畅
2023-03-14

在阅读了一整天关于一种或另一种方法后,我仍然不确定什么对我来说是最好的,所有的网站都解释了同样的事情,但是当我想知道真正让我担心的事情时,没有人谈论这个。

我的情况:我几乎所有的图像都使用宽度100%和高度自动,图像容器具有动态大小,例如30vw或40%,等等(不确定在这种情况下,我是否仍然需要在img标记中设置高度和宽度值)

如果我想为我的图像和webp格式提供不同的尺寸,并让浏览器决定选择什么,我需要使用什么?

我可以提供没有图片和源标签的webp图像吗?我可以使用图片方法,仍然让浏览器选择显示什么图像吗?

也不确定为什么我们需要为最小的图像选择带有简单img src的回退,在这种情况下,如果有人使用IE和大屏幕进入,那么图像将始终是像素化的。在这种情况下,我宁愿让一些用户等待更长的时间,也不愿为他们提供低分辨率的图像。而且有一个低分辨率的图像与回退选项,不知道如何影响个人图像搜索引擎优化排名。

共有1个答案

娄建义
2023-03-14

您的描述看起来像是响应图像的常见用例。例如,如果您的图像在大屏幕上以50%的宽度显示,在小于900px的视口中以100%的宽度显示,您的HTML可能如下所示:

<picture>
    <source
        type="image/webp"
        sizes="(min-width: 900px) 50vw, 100vw"
        srcset="image-500.webp 500w, image-1000.webp 1000w, image-1500.webp 1500w"
    >
    <img
        sizes="(min-width: 900px) 50vw, 100vw"
        srcset="image-500.jpg 500w, image-1000.jpg 1000w, image-1500.jpg 1500w"
        src="image-1000.jpg"
    >
</picture>

这样,支持

此技术最重要的部分是正确指定size属性,以便浏览器能够正确决定加载哪个图像。您可以在此处找到有关它的更多信息:https://ericportis.com/posts/2014/srcset-sizes/

要在“旧”浏览器上显示的图像可以通过src属性自由选择。或者,您可以使用Picturefill或respimage等工具通过JavaScript“聚合”该功能

您可以省略

 类似资料:
  • 我一直在尝试使用以下HTML实现新的srcset方法来响应图像 我使用Chrome 40,我得到的是最大的图像,调整浏览器大小,清除缓存什么都不做。 我在某个地方读到我必须填充的内容,所以我使用了picturefill插件,尽管chrome应该支持它……但仍然不起作用。 我为它整理了一个演示页面:http://www.darrencousins.com/lab/resp-img-srcset/ 我

  • 在匿名模式下使用Google Chrome进行测试,每次使用“空缓存和硬加载”重新加载页面。 我有以下html响应图像: 预期行为: 1.视口宽度0px-666px: 浏览器应该获取完整的视口像素宽度,例如450px,并从宽度大于450px的srcset中选择最小的src,在这种情况下'/app/上传/2018/07/1400x750-520x279.png' 2.视口宽度667px-1399px

  • 我正在使用具有响应图像的引导。我想通过向浏览器提供多种图像大小来优化加载时间。根据本文,使用srcset这样的简单方法有助于让浏览器选择最佳图像大小: 我的问题是,将其与引导img响应类相结合,即使只需要一张小图片,也会加载一张大图片。 代码示例:Bootply。使用Chrome进行测试,它内置支持srcset支持!其他一些浏览器需要picturefill.js才能识别它。) 如果您复制图像的源(

  • 问题内容: 我有一个响应式html布局中的现有图像映射。图像根据浏览器大小缩放,但是图像坐标显然是固定的像素大小。我必须选择哪些选项来调整图像地图坐标的大小? 问题答案: 您也可以使用svg代替图像映射。

  • 我用的是拉威尔5号。我正在创建一个各种各样的照片库。当你点击我使用的图像时 启动文件的下载。 下面是我的代码: 路线 当用户转到test/example.png时,它运行get下载函数 控制器 在这个函数中,我声明文件的路径并设置下载。 看法 在我看来,我使用一个循环来获取文件名,然后创建一个指向test/$filename的链接,该链接调用控制器中的方法。 问题所在 使用这种方法似乎可以工作,因

  • 问题内容: 如果不存在单独服务器上的图像,我想显示一个默认图像。是否有一个角度指令来实现这一目标? 问题答案: 不可以,但是您可以创建一个。 http://jsfiddle.net/FdKKf/ HTML: JS: