css - 如何根据设备分辨率缩放缩略图?

标签 css less media-queries screen pixel-ratio

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

@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 显示添加另一组规则,其中包括 (和最小分辨率:1.3dppx)

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

有什么方法可以调整第一组规则中的最小宽度值,使其考虑到设备像素比?

我正在寻找类似的东西:

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

但这显然行不通:/

最佳答案

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

1em = 16px

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

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

请阅读这篇文章:Why em instead of px?

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

如果你想拥有良好的响应式设计,请使用 Inspect Element 移动版 chrome...

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

关于css - 如何根据设备分辨率缩放缩略图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43721102/

相关文章:

c++ - 强制重新计算 Qt 样式表似乎无济于事

html - 类被边框而不是它的元素

node.js - 如何为自定义过滤器 [Bootstrap、JQuery] 配置 Symfony2 和 Assetic 设置?

CSS if else 条件,移动纵向或横向

html - 为什么元素不在页面中心(边距 :auto)

css - 如何在 2 中编译 2 个 less 文件 !!! css文件在特定的地方?

html - 如何正确地组织较少的类(class)

html - 媒体查询(最小宽度 : 1800px) isn't working at 1800px?

html - 文本在移动设备上的大小调整错误

html - 我可以在响应式 css 指令中引用媒体大小吗?