CSS: 查询屏幕分辨率和密度的最佳方式?

CSS: Best way to query screen resolution and density?

对于我的网站,我想创建一些 div,在智能手机中尺寸约为 1cmx1cm,在平板电脑和计算机中尺寸约为 1.5cmx1.5cm。 (我会选择几个 dpi 间隔的宽度和高度)

据我了解,如果我理解正确的话,仅仅查询分辨率是行不通的,一些高 dpi 智能手机的分辨率几乎与某些计算机相同。

1 - 但从我发现的所有示例中,大多数人查询 px 而不是使用 dpi 查询,这是为什么?

2 - 在高 dpi 计算机屏幕上,我们现在使用桌面显示缩放,那么如何知道浏览器何时缩放?

3 - 有办法做到这一点吗?

编辑:我不会以任何方式使用厘米,我将使用某些 px 或 % 来表示几个 dpi 间隔。我使用 cm 来说明为什么我需要在 dpi 中查询。

按照你的风格sheet你可以这样做:

@media all and (-webkit-min-device-pixel-ratio: 1.5) {

}

人们用它来提供高分辨率图像,它仍然在桌面显示器上被检测到。

为确保移动设备呈现设备宽度的页面,您需要添加视口元标记:

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

记住平板电脑通常是 hi-dpi。此外,人们仍然使用 @media all and (max-width: 320px) 查询视口的原因是因为无论像素密度如何,320 像素仍然是 320 像素。它将是相同的大小。

由于您是针对屏幕而不是打印进行设计,因此尝试使用像厘米这样的物理单位是个坏主意。坚持使用像素和 ems。