我使用Cordova制作了一个应用程序,但css试图让它在大多数移动屏幕上看起来都一样,这给我带来了一些困难。
在这条线路的某个地方,我了解到我开始为每个测试设备编写@media查询(小米Redmi Note 3、小米Redmi 3S、华为ATH-UL01、华为KII-L21)。
第一个问题是

@media screen and (device-width: 360px) and (min-device-height: 540px) and (-webkit-device-pixel-ratio: 3) {
}

对小米红米Note3来说是好事,但对华为ATH-UL01来说却是坏事,尽管它们的功能(设备宽度:360px和像素比)是一样的!也许还有什么我在@media中没有描述的?
第二个问题是,在我看来,为每个设备编写@media不是正确的方式。什么是让应用程序在大多数设备上看起来不错的正确方法?什么是良好实践?
font-sizeline-height在不同的屏幕上看起来大多不同。如何避免?也许我应该用em?现在我使用px

最佳答案

简而言之:瞄准宽度,一视同仁。
有了移动设备,情况会有点不同。你特别提到了font-sizeline-height。它们看起来会有所不同,因为物理dpi(每英寸点数)或ppi(每英寸像素)不同。
这让人有点困惑,因为移动设备(尤其是那些dpi非常高的设备)在涉及移动设备时模拟了ppi。一部iPhone可能有1000像素宽,但在浏览器面前却显示为640像素左右。而这些并不一定与设备的物理尺寸相对应。
这意味着在一部手机上,16px在现实世界中可能是1/4英寸,而在另一部手机上可能是1/6英寸或1/2英寸。
所有这些基本上意味着你永远不会得到完全一样的东西。你最好的方法是瞄准设备的宽度,同时观察一些设备,找到“足够好”的东西。然后,对于任何异常值,可以更具体地针对它们来修复小问题。
如果你想让每个设备看起来都一样,你会让自己发疯的。这是不可能的。

10-08 18:13