首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >img srcset -忽略像素密度

img srcset -忽略像素密度
EN

Stack Overflow用户
提问于 2014-11-26 02:31:43
回答 2查看 2.9K关注 0票数 12

我有两个图像,一个是1000 x 800 px (“大”),一个是200 x 200 px (“小”)。当屏幕小于或等于500个CSS像素宽时,我想使用srcset / sizes / 图片填充来显示小图像,否则显示大图像。

下面是一个稻草人的建议:http://jsfiddle.net/ghhjfo4z/1/embedded/result/

代码语言:javascript
复制
<img srcset="http://i.imgur.com/hw9O9Ia.jpg 1000w, http://i.imgur.com/BgLoqRx.jpg 500w">

这在我的1x像素密度显示器上工作得很好。但是当我切换到我的2x像素密度视网膜显示器时,突然小图像只有当视口小于或等于250个CSS像素宽时才会显示。

当视口小于或等于500 2x时,是否有任何方法使浏览器使用我的2x像素密度显示器上的小图像?

基本上,我想忽略设备的像素密度,并使用srcset和/或sizes只选择基于视口的CSS像素宽度的图像。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-26 13:15:30

简而言之,这是不可能的。如果您想拥有更多的控制,您可以使用图片元素。

代码语言:javascript
复制
<picture>
    <source srcset="img-500w.jpg" media="(max-width: 650px)" />
    <img srcset="img-1000w.jpg" />
</picture>

还有一个有趣的你的lazySizes插件,乐天。标记将如下所示:

代码语言:javascript
复制
<img
    data-srcset="http://placehold.it/300x150 300w,
        http://placehold.it/700x300 700w,
        http://placehold.it/1400x600 1400w,
        http://placehold.it/2800x1200 2800w"
     data-sizes="auto"
     data-optimumx="1.5"
     class="lazyload"
     src="http://placehold.it/300x150"
     alt="flexible image" />

明智的做法是将其设置为1.2或更好的1.5,而不是仅仅1。

对于其他性能与视网膜的考虑因素,请看这里。

票数 6
EN

Stack Overflow用户

发布于 2018-01-30 16:31:34

仅供完成:我发现以下解决方案对我有用:

代码语言:javascript
复制
<img
    srcset="http://i.imgur.com/hw9O9Ia.jpg 1000w,
        http://i.imgur.com/BgLoqRx.jpg 500w"
    sizes="(-webkit-min-device-pixel-ratio: 2) 50vw,
        (min-resolution: 192dpi) 50vw,
        (min-resolution: 2dppx) 50vw,
        (-webkit-min-device-pixel-ratio: 3) 33.33vw,
        (min-resolution: 288dpi) 33.33vw,
        (min-resolution: 3dppx) 33.33vw" />
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27140393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档