Retina使用媒体查询显示图像分辨率

Dar*_*lyn 9 css retina-display media-queries

使用媒体查询检测视网膜显示并指定的最佳方法是什么max-width?我可以使用检测视网膜

@media
only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and (   min--moz-device-pixel-ratio: 2),
only screen and (     -o-min-device-pixel-ratio: 2/1),
only screen and (        min-device-pixel-ratio: 2),
only screen and (                min-resolution: 192dpi),
only screen and (                min-resolution: 2dppx) { 

}
Run Code Online (Sandbox Code Playgroud)

如何将其添加到媒体查询?我写的吗?

@media
only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and (   min--moz-device-pixel-ratio: 2),
only screen and (     -o-min-device-pixel-ratio: 2/1),
only screen and (        min-device-pixel-ratio: 2),
only screen and (                min-resolution: 192dpi),
only screen and (                min-resolution: 2dppx) { 
 @media screen and ( max-width: 2000px){
     .holer{
         background:url("background@2x.png");
       }
  }
}
Run Code Online (Sandbox Code Playgroud)

或者有更好的方法来改变视网膜显示的图像?(将屏幕尺寸的媒体查询添加到视网膜显示的媒体查询)

Jas*_*onK 3

根据 CSS-tricks 的这篇文章,您可能会涵盖所有视网膜显示。我想你已经发现了。另一种选择是使用 SVG,但我不会将它们用于背景图像。SVG 格式非常适合二维形状和图标,尽管图标字体渲染速度更快。

至于“如何将屏幕尺寸的媒体查询添加到视网膜显示的媒体查询”的问题,您发布的代码应该可以正常工作。另一种方法是将第二个子句添加到第一个子句中,如下所示:

@media
only screen and (-webkit-min-device-pixel-ratio: 2) and ( max-width: 2000px),
only screen and (   min--moz-device-pixel-ratio: 2) and ( max-width: 2000px),
only screen and (     -o-min-device-pixel-ratio: 2/1) and ( max-width: 2000px),
only screen and (        min-device-pixel-ratio: 2) and ( max-width: 2000px),
only screen and (                min-resolution: 192dpi) and ( max-width: 2000px),
only screen and (                min-resolution: 2dppx) and ( max-width: 2000px) { 
    .holer {
        background:url("background@2x.png");
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您使用 SCSS,请按照此处的说明创建一个 mixin 。这将为您节省大量时间并大大提高可读性。

  • 为什么是“最大宽度= 2000px”?如果我想瞄准视网膜显示器,它们可以低于或高于这个尺寸,对吧? (2认同)