我在一个页面上有很多图像,一个画廊。我希望图像保持清晰,所以我不做任何浏览器缩放,我使用图像的原始尺寸。
但是,这仅在浏览器缩放级别为 100% 时有效。当我增加或减少缩放级别时,图像质量会降低。
默认情况下,某些客户端实际上具有不同的缩放级别。我想知道,你怎么能处理它,我们能处理它吗?
干杯
我在一个页面上有很多图像,一个画廊。我希望图像保持清晰,所以我不做任何浏览器缩放,我使用图像的原始尺寸。
但是,这仅在浏览器缩放级别为 100% 时有效。当我增加或减少缩放级别时,图像质量会降低。
默认情况下,某些客户端实际上具有不同的缩放级别。我想知道,你怎么能处理它,我们能处理它吗?
干杯
我认为大多数其他答案都忽略了这一点:这不是关于覆盖用户偏好,而是关于在用户设备为每个 CSS 像素(又名“参考像素”)分配多个物理像素的常见场景中提供最佳质量的图像" 在您的图像中,导致浏览器放大图像,使其像素化和颗粒状。
我建议的解决方案如下,但首先是这可能发生的四种方式:
width: 200px; height: 200px;
实际上会缩放200 x 200 像素的图像超过 200 x 200 像素,可能会使其变得颗粒状。任何这些都会导致 John 的问题,即图像库看起来令人惊讶的颗粒状。
我希望有人能很好地解决这个问题,但现在这里是我的首选选项,从最有效但最不普遍的开始:
如果 1. 和 2. 不可能,但它真的很重要,而且图像质量比加载时间更重要,那就把图像加倍。
这就是谷歌在其主页上使用他们的标志所做的:他们将 538 像素 x 190 像素的 PNG 图像压缩到 269 像素 x 95 像素的容器中。它也或多或少与响应式图像的工作方式相同。
这曾经被认为是不好的做法,因为旧版本的 IE 在缩小图像方面很糟糕,但现在很少使用,而且比高像素密度屏幕少得多。它仍然有些不可取,因为它会增加图像大小并因此增加加载时间 - 这是您需要逐案判断的权衡。
正如DA01 评论的那样,您不应该对此做任何事情。
缩放是用户指定的选项,因此在他们的控制之下。他们决定搞乱的设置不应该是你的责任。
您可以考虑不同的浏览器和版本等等,但合理地说,您不应该考虑用户的缩放。
当然,您可能占 125% 或 150%(您甚至可能不必这样做)。但是 200%、300% 还是更多?这没有任何意义。
如果用户使用高对比度的 windows 主题怎么办?如果他们经常使用放大镜怎么办?谁在乎?
理想情况下,您的网站足够灵活,不会在小的缩放差异之间产生真正的差异,但图像的质量会随着缩放而降低,但这不是您的责任。
这当然只是我的观点,但我工作的公司也明确告诉客户我们不支持他们的缩放偏好。
其他人就您将面临的问题给出了一些很好的提示,而我在这方面还不够好,无法做一个好的教程,但是......
您可能希望设计一个根据用户的 res/device 进行调整的响应式站点,然后您可能正在寻找在请求时将图像切换到更高或更低分辨率文件的代码,而不是拉伸和挤压您拥有的图像。
当我上次尝试这样做时,我使用了 media-query.js 和 picturefill.js。请参阅:http ://responsivedesign.is/resources/images/picture-fill 。我有一个 3 列布局,其中一些图像将跨越两列......当浏览器窗口足够小时,大图像将切换到只有一列宽的较小 res 版本。用户的浏览器只会加载他们需要的文件版本。(在我的情况下,砌体插件会移动一切以适应)。
当然,您的用户必须启用 javascript...
你不能强迫用户动手。用户设置不是您可以使用的。设置和规避它们是一个坏主意,用户做某事可能是有原因的。无论哪种情况,您都无法保证跨各种设备的任何事情。
事实上,如果你进入技术方面,它会变得更加有趣。你真的用你的网页给了王国的钥匙。看到用户下载网页,用户现在可以用它做任何他们喜欢的事情。你无法控制这一层,它毕竟是在用户机器上运行的,他们可以为所欲为。甚至 stackexhange 在我的电脑/手机上看起来也不像在你的电脑上一样。我最终自动更改了 GUI 的某些方面,以修复 2 个渲染错误并添加了 2 个快捷方式。