0

我有这些媒体查询规则,根据窗口宽度指定一行内应该有多少个缩略图:

@media only screen and (min-width: 250px){ 
  li{
    max-width: 100%;
  }
}

@media only screen and (min-width: 700px){ 
  li{
    max-width: 50%;
  }
}

@media only screen and (min-width: 950px){ 
  li{
    max-width: 33.3333333333%;
  }
}

@media only screen and (min-width: 1200px){ 
  li{
    max-width: 25%;
  }
}

@media only screen and (min-width: 1600px){ 
  li{
    max-width: 20%;
  }
}

它在 1.0 像素比的显示器上运行良好,但在高 dpi 显示器上缩略图显得太大。

经过一番谷歌搜索后,我发现我应该为更高 dpi 显示器添加另一组规则,其中包括(and min-resolution: 1.3dppx)

但这并不能真正解决任何显示器的问题,它只是解决了 1.3 dpi 显示器的问题。

有没有办法调整第一组规则中的最小宽度值,以考虑设备像素比?

我正在寻找类似的东西:

...and (min-width: (250px * resolution))

但这显然行不通:/

4

1 回答 1

1

如果您在媒体查询中使用“em”,它就解决了您的问题。

1em = 16px

@media only screen and ( min-width: 15.625em ){  // 250 / 16 
  li{
     max-width: 100%;
  }
}

如果您使用“em”,您将确保您的设计在其他设备中正常工作......

请阅读这篇文章:为什么用 em 而不是 px?

https://css-tricks.com/why-ems/

如果您想拥有良好的响应式设计,请使用 Inspect Element mobile chrome...

最后,如果你想计算设备分辨率,你应该使用 JavaScript ,获取宽度并计算它......

于 2017-05-01T16:26:39.310 回答