标签: srcset

响应式图像:img srcset + Bootstrap,加载错误大小的图像

我正在使用带有响应图像的Bootstrap.我想通过向浏览器提供多种图像大小来优化加载时间.根据这篇文章,像这样的srcset的简单方法有利于让浏览器选择最佳图像大小:

<img src="small.jpg" srcset="medium.jpg 1000w, large.jpg 2000w" alt="yah">
Run Code Online (Sandbox Code Playgroud)

我的问题是将它与Bootstrap img-responsive类相结合,即使只需要一个小的图片,也会加载一个大尺寸的图片.

这里的代码示例:Bootply.使用Chrome进行测试,它内置支持srcset支持!(其他一些浏览器需要picturefill.js来识别它.)

如果您复制图像的来源(或在"网络"选项卡中查看Chrome开发者工具),您可以看到750宽度版本被加载,并调整为小图像,即使有较小的版本是最佳的使用.(如果加载picturefill JS来支持img srcset,那么在IE和Firefox中也会发生同样的事情.)

我究竟做错了什么?

responsive-design twitter-bootstrap picturefill srcset

5
推荐指数
1
解决办法
9959
查看次数

是否必须在srcset中将sizes属性与w描述符一起使用?

我已经阅读了许多有关srcset用于设备像素密度调整和艺术指导的文章:

Paddi Macdonnell撰写的2015年响应式图像状态

srcset第2部分:Rich Finelli的W描述符和大小属性

这些都不清楚是否可以在没有sizes属性的情况下使用w描述符。多数表示相反(w描述符与一起使用sizes

我自己的基本测试证实了仅使用w描述符即可进行图像切换

我发现,当使用w描述符根据其宽度指定许多不同的图像时,浏览器将选择适合在有限空间内的最佳图像。

无需其他代码。

在设计响应站点时,这显然是令人困惑的,因为作为设计者,我仅需要以下几种情况:

  1. 根据设备像素密度更改图像(对我有用。太好了!)
  2. 根据可用宽度更改图像(艺术方向)(对我有用。太好了!)

我想知道这sizes将如何导致这场崩溃。我完全赞赏这是一个新功能。

css responsive-design srcset responsive-images

5
推荐指数
2
解决办法
432
查看次数

HTML srcset 规范:澄清

我已经编写了一个 JavaScript 填充器来实现srcset,但我需要澄清指定的行为。

虽然srcset允许您指定宽度或分辨率的条件,但我无法确定是否可以同时指定两者。例如:

<img src="images/oh1x408.jpg"
    srcset="images/oh1x192.jpg, images/oh1x408.jpg 420w,
    images/oh2x192.jpg 2x, images/oh2x408.jpg 2x 420w">
Run Code Online (Sandbox Code Playgroud)

这应该涵盖单分辨率和双分辨率,以及更小和更宽的屏幕。

我没有看到指定宽度和分辨率的示例。问题是:

  • srcset例中的最后一张图片是否符合规格?
  • 示例中的其他内容是否不正确?

谢谢

html image srcset

4
推荐指数
1
解决办法
821
查看次数

WordPress:srcset 在所有帖子中获取 HTTP 而不是 HTTPS

Wordpress 4.4 中,图像会自动获得一个srcset属性。我的问题如下(我在写这个问题时解决了它,请参阅下面的答案):

  • 为了将所有内容传输到 https,我将posts 表src="http://...中的所有引用替换为(后来我将其更改为支持这两种协议);src="https://...src="//...
  • 所有帖子上的图像在src属性中都获得正确的 URL;
  • 然而,在所有获取该属性的图像中,srcset其中的 URL 始终带有http://引用。

为什么会出现这种情况?为什么这些网址没有得到我最新更新的https://开头?

wordpress https image srcset

4
推荐指数
1
解决办法
5724
查看次数

获取图片元素的当前图像源

一个HTMLImageElement有一个currentSrc属性,因此,我们可以得到一个的电流源img元素.在定义多个可能的源时很有用srcset.

似乎没有HTMLPictureElement的等价物.

有没有其他方法可以picture使用Javascript 找到元素的当前来源?

javascript srcset responsive-images

4
推荐指数
1
解决办法
4680
查看次数

srcset,如果我已经指定了每个图像的宽度,我还需要写“1x,2x,3x”吗?

我应该写这个吗

srcset="small.jpg 1x 500w, medium.jpg 2x 1000w, large.jpg 3x 1500w"
Run Code Online (Sandbox Code Playgroud)

或这个

srcset="small.jpg 500w, medium.jpg 1000w, large.jpg 1500w"
Run Code Online (Sandbox Code Playgroud)

两个表达一样吗?

html srcset

4
推荐指数
1
解决办法
8803
查看次数

Wordpress:从定制器向图像添加“srcset”和“尺寸”属性

Wordpress自动为来自帖子的所有图像添加属性srcsetsizes那\xe2\x80\x99s 非常整洁。

\n\n

但是如何让 WordPress 将这些属性添加到来自定制程序输入的图像中呢?

\n\n

就我而言:帖子的默认图像。当帖子中未上传图像时,会显示该默认图像。它\xe2\x80\x99s由用户通过定制器上传并使用调用get_theme_mod

\n\n

来自帖子的图像(工作正常,所有属性均已添加):

\n\n
get_the_post_thumbnail($post->ID, \'news\', array(\'class\' => \'img-responsive\'));\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果未提供图像:加载默认图像(没有 \xe2\x80\x99scrset\xe2\x80\x99 和 \xe2\x80\x99sizes\xe2\x80\x99

\n\n
\'<img src="\' . esc_url( get_theme_mod( \'default_image\' ) ) . \'" alt="default image" class="img-responsive" />\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

wp_image_add_srcset_and_sizes()似乎是要走的路,但它需要我不\xe2\x80\x99不知道从哪里获得的属性。

\n\n

感谢您的帮助!

\n

php wordpress themes image srcset

4
推荐指数
1
解决办法
4239
查看次数

我可以使用 `&lt;img srcset&gt;` 或 `&lt;picture&gt;` 作为图像大小而不是视口大小吗?

我试图<img srcset />根据图像在页面上显示的大小来加载图像,而不是根据视口的大小。也许例子会有所帮助:

  • 在任何视口上,当图像width: 100%在 200px 宽内设置样式时<div>img-200.jpg应该加载。
  • 在任何视口上,当图像的样式设置为400pxwidth: 100%宽时,应该加载。<div>img-400.jpg
  • ...ETC。

我已经进行了大量的谷歌搜索,但据我所知,srcset仅用于根据视口大小而不是图像大小更改图像,如果这有意义的话。那是对的吗?或者我想要完成的事情还有希望吗?

css srcset responsive-images

4
推荐指数
1
解决办法
1024
查看次数

带有响应式图像的古腾堡自定义块

我遵循了有关如何构建自定义 WordPress Gutenberg 块的教程:https : //neliosoftware.com/blog/how-to-create-your-first-block-for-gutenberg/

第一个块很好,但我想在这个块中使用自定义图像大小。这个图像大小也应该是响应式的,这意味着应该在前端添加其他图像大小的 srcset 属性。

我在互联网上搜索了很长时间,但没有找到任何东西。使用来自 wordpress 的标准图像块或画廊块调整大小的图像,但对我来说,整个代码太复杂了,因为我还不习惯古腾堡的编码方式......

是否有关于如何存档的现有指南或代码示例?

最好的卢卡斯

wordpress srcset wordpress-gutenberg gutenberg-blocks

4
推荐指数
1
解决办法
2972
查看次数

为什么我的 img 元素总是从 srcset 加载最大的图像

因此,我正在尝试制作一个响应式图像组件,该组件将根据屏幕分辨率/像素密度加载适当大小的图像。据我了解, srcset 属性正是为此而设计的,但我无法让它做我想做的事。我究竟做错了什么?这是渲染到 DOM 的元素:

<img src="/static/media/image2_1x.20b2e636.png" srcset="/static/media/image2_05x.198c1f0f.png 590w, /static/media/image2_1x.20b2e636.png 1180w, /static/media/image2_2x.632d77c5.png 2360w" sizes="(max-width: 1180px) 90vw, 1180px">
Run Code Online (Sandbox Code Playgroud)

我希望这个元素做的是,当屏幕尺寸大于 1180 像素时,它会为 1180 像素的宽度加载合适的图像。如果在高密度设备上显示,这里可能会加载2x图像(2360w),但通常会加载1x图像(1180w),当屏幕尺寸较小时,它应该计算90vw是多少px并根据像素密度和屏幕上 90vw 的像素数选择三个图像中最合适的一个。

实际发生的是该元素始终加载最大的图片(2360w 的图片)。即使我在我的 chrome 开发工具中打开响应模式并将屏幕宽度缩小到 300px 清除缓存并重新加载它仍然加载 2x 一个。

我尝试了多种尺寸属性。如果我将尺寸设置为 500 像素,它会将图像显示为 500 像素宽,但它仍会加载 2x 图像。

为什么会这样?我做错了吗?当图像宽度为 300 像素且不需要高分辨率版本时,如何使其加载 0.5 像素的图像?

html css srcset responsive

4
推荐指数
1
解决办法
630
查看次数