【问题标题】:How to make Responsive Images for mobile experiences如何为移动体验制作响应式图像
【发布时间】:2012-06-30 21:20:11
【问题描述】:

更新


我有全屏背景图片。这给移动浏览带来了问题,因为图像很大并且是高分辨率的。

下一个问题是视网膜显示等问题,设计/程序员如何准备处理这个问题?我看到很多关于如何在图像之间切换的文章。但是后来我对像素密度与分辨率过度混淆了。何时何地需要它,以及如何以及为什么要针对它们。

例子:

*1900x1080 分辨率和 72dpi 的全屏背景图像。为了获得最佳优化,每个分辨率/像素密度应该有多少张图像?此外,在这种情况下,哪个库/插件/语义最适合解决这种情况?

最后,如果我使用媒体查询来定位和切换背景图像,它会下载所有图像吗?还是仅在满足要求时?

@media (min-device-width : 768px) 
and (max-device-width : 1024px) {
background-image:url('paper1024.png');
}

@media only screen 
and (min-width : 1824px) {
background-image:url('paper1900.png');
 } 

感谢堆栈


//旧问题没有出于评论目的而删除它//

所以我正在制作一个全屏图片的响应式网站。我遇到的问题是原始图像对于移动设备下载来说太大了。

作为响应式设计的新手,我不知道这是一个问题,并自行发现了它。看了几篇文章

最好的是:
http://www.alistapart.com/articles/responsive-images-and-web-standards-at-the-turning-point/

我的问题是:我不相信<picture>tag 对公众开放?我找不到更多关于此的信息。

有人知道这是否允许吗?此外,有关如何正确使用它的更多信息/文档。

如果picture 不适用。是否有任何“标准”论着让图像具有响应性而不会导致移动带宽膨胀?

【问题讨论】:

  • 是的,我看到了,我愿意使用它,但似乎有一个 HTML5 标记。为此,我认为如果使用 HiRes.js,可持续性可能会受到影响
  • 这是我在最近参加的几乎所有网络开发研讨会上都听到讨论过的主题,可能有一半的博客文章。
  • 使用不同大小的文件可能是更简单的解决方案(不是最佳优化的)
  • 但是在检测到移动设备时如何在它们之间切换?

标签: javascript jquery html responsive-design


【解决方案1】:

这是我在上一个项目中进行视网膜修复的方式:

首先使用 background-image 在普通 css 中为桌面设置图像:

#bg {
  background: image-url('wallpaper_desktop.jpg') center top;
  background-size: 1024px 768px;
}

然后,我给手机寻址,例如苹果手机:

@media only screen and (min-device-width: 320px) and (max-device-width: 480px){
  #bg {
    background: image-url('wallpaper_mobile.jpg') center top;
    background-size: 320px 480px;
  }
}

然后是视网膜图像处理。使用大小翻倍的图像(参见文件名中的“@2x”):

@media only screen and (-webkit-min-device-pixel-ratio: 2) {
  #bg {
    background: image-url('wallpaper_mobile@2x.jpg') center top;
    background-size: 320px 480px; // Original size
  }
}

由于也有配备 Retina 显示屏的 iPad 和 MacBook,我们应该考虑为它们提供比高分辨率手机更大的高分辨率版本:

@media only screen and (max-device-width: 2048px) and (-webkit-min-device-pixel-ratio: 2) {
  background: image-url('wallpaper_desktop@2x.jpg') center top;
  background-size: 1024px 768px;
}

所以,通常我每张图片使用 4 个版本。 2 个桌面版本(一个用于视网膜显示器的尺寸加倍)和 2 个移动版本(还有一个用于视网膜显示器的尺寸加倍)

顺便说一句:当使用媒体查询获取额外图像时,没有额外的请求。

【讨论】:

  • 非常感谢!我很好奇你会为全屏 标签做什么?那需要javascript/jQuery吗?或者你也有一个巧妙的方法?
猜你喜欢
  • 1970-01-01
  • 2021-08-20
  • 2019-02-17
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 2017-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多