9

我正在使用 CSS 媒体查询为不同大小的设备加载不同的模板。我创建了一个电子表格,列出了测试设备的显示分辨率和最常见的设备以得出尺寸截止值。我正在测试的设备之一是 Nexus 7,我发现它的显示分辨率为 1280 × 800。但是,当我在代码中使用这些值时,它不起作用。

**我不使用最大值或最小值的唯一原因是因为我试图找到确切的分辨率。如果我用相当大的东西替换 max-device-width ,它可以工作并且我已经做了足够的测试以知道它可以与给定的各种最大值一起工作,但是为了正确完成我的代码以区分 3 个不同大小的设备类别,我必须确保创建正确的截止点。CSS分辨率不同吗?感谢您提前提供的所有帮助!

@media only screen and (device-width:1280px) and (orientation:landscape) {
/*style --code removed for sack of space */
} 

@media only screen and (device-width:800px) and (orientation:portrait) {

/*style --code removed for sack of space */

}    

这是我的 html 文件中的视口代码

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

3 回答 3

13

CSS 像素和设备像素中的屏幕尺寸存在差异。

在 nexus 7 的情况下,本机设备像素为 1280 x 800 像素。

然而,如果这是媒体查询的报告宽度,我们最终会触发传统桌面尺寸的响应式设计。

结果,许多浏览器在高像素密度显示之前选择了更接近于传统像素大小的 CSS 像素大小。几乎是 iPhone 1 - 3 像素大小。

设备像素比率报告(设备像素/CSS 像素)

例如 800 / 600 = 1.3333

更令人困惑的是,这些比率有时会随着操作系统版本的变化而变化。例如,从 Jelly Bean 4.2 开始,我的 nexus 7 报告纵向宽度为 600 像素,低于 603。

这使得很难使用基于宽度的媒体查询来定位精确的设备。我建议您接受您正在为大量设备宽度进行设计,并尝试创建一个响应式设计,以适应您选择支持的设备尺寸范围。

祝你好运:)

于 2012-11-16T01:23:25.423 回答
3

使用以下视口代码:

<meta name="viewport" content="target-densitydpi=device-dpi, width=device-width" />

或者这个不允许缩放:

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

Nexus 7 的奇怪之处在于(正如 jpgr 发布的那样)它不允许您使用1280/800它所拥有的空间(至少开箱即用)。尽管设置了缩放首选项,但它几乎就像在某种程度上放大了一样。

当我的图形看起来有点模糊时,我注意到了这个问题。我通过javascript测试了窗口大小,它发布的数字25%低于预期。你会注意到我已经排除了缩放参数,因为它似乎在很大程度上忽略了它们。

真正的关键是使用target-densitydpi = device-dpi...这似乎非常正确。

肯定喜欢与 Nexus 7 一起工作!!!

于 2012-09-05T00:10:57.807 回答
2

过于务实的答案,但您基本上可以使用 601x880 的屏幕尺寸来定位 Nexus 7。技术上不完整,但如果您尝试在媒体查询中使用断点,应该足以让您入门。

于 2013-01-16T23:20:20.043 回答