Sie können die tatsächlichen physischen Abmessungen oder die tatsächliche DPI nicht wirklich ermitteln, und selbst wenn Sie könnten, können Sie nichts damit anfangen.
Dies ist eine ziemlich lange und komplexe Geschichte, also vergib mir.
Das Web und alle Browser definieren 1px als eine Einheit, die als CSS-Pixel bezeichnet wird. Ein CSS-Pixel ist kein echtes Pixel, sondern eine Einheit, die basierend auf dem Betrachtungswinkel des Geräts als 1/96 Zoll angenommen wird. Dies wird als Referenzpixel angegeben .
Das Referenzpixel ist der Sichtwinkel eines Pixels auf einem Gerät mit einer Pixeldichte von 96 dpi und einem Abstand vom Leser von Armlänge. Bei einer nominalen Armlänge von 28 Zoll beträgt der Sichtwinkel daher etwa 0,0213 Grad. Für das Ablesen auf Armlänge entspricht 1px somit etwa 0,26 mm (1/96 Zoll).
In 0,26 mm Raum haben wir möglicherweise sehr viele reale Gerätepixel.
Der Browser tut dies hauptsächlich aus alten Gründen - die meisten Monitore hatten 96 dpi, als das Web geboren wurde -, aber auch aus Gründen der Konsistenz war in früheren Zeiten eine 22px-Taste auf einem 15-Zoll-Bildschirm mit 800x600 doppelt so groß wie eine 22px-Taste ein 15 Zoll Monitor bei 1600x1200. In diesem Fall beträgt die DPI des Bildschirms tatsächlich das Zweifache (doppelte doppelte Auflösung horizontal, jedoch im selben physischen Raum). Dies ist eine schlechte Situation für das Web und Apps. Daher haben die meisten Betriebssysteme viele Möglichkeiten entwickelt, um Pixelwerte in geräteunabhängige Einheiten zu abstrahieren (DIPS unter Android, PT unter iOS und CSS Pixel im Web ).
Der iPhone Safari-Browser war (meines Wissens) der erste, der das Konzept eines Ansichtsfensters einführte. Dies wurde erstellt, damit Anwendungen im vollständigen Desktop-Stil auf einem kleinen Bildschirm gerendert werden können. Das Ansichtsfenster wurde mit einer Breite von 960 Pixel definiert. Dadurch wurde die Seite im Wesentlichen dreimal verkleinert (das iPhone war ursprünglich 320 Pixel groß), sodass 1 CSS-Pixel 1/3 eines physischen Pixels entspricht. Wenn Sie jedoch ein Ansichtsfenster definiert haben, kann dieses Gerät 1 CSS-Pixel = 1 echtes Pixel bei 163 dpi entsprechen.
Durch die Verwendung eines Ansichtsfensters mit der Breite "Gerätebreite" müssen Sie die Breite des Ansichtsfensters nicht mehr pro Gerät auf die optimale CSS-Pixelgröße einstellen. Der Browser erledigt dies nur für Sie.
Mit der Einführung von Geräten mit doppelter DPI wollten die Mobiltelefonhersteller nicht, dass mobile Seiten 50% kleiner erscheinen, und führten daher ein Konzept namens devicePixelRatio ein (ich glaube, zuerst im mobilen Webkit), mit dem sie 1 CSS-Pixel auf ungefähr 1 / halten können 96. Zoll, aber lassen Sie sich verstehen, dass Ihre Assets wie Bilder möglicherweise doppelt so groß sein müssen. Wenn Sie sich die iPhone-Serie ansehen, sagen alle Geräte, dass die Bildschirmbreite in CSS-Pixeln 320 Pixel beträgt , obwohl wir wissen, dass dies nicht der Fall ist.
Wenn Sie eine Schaltfläche so eingestellt haben, dass sie im CSS-Bereich 22 Pixel groß ist, beträgt die Darstellung auf dem physischen Bildschirm 22 * Gerätepixelverhältnis. Eigentlich sage ich das, es ist nicht genau das, weil das Pixelverhältnis des Geräts auch nie exakt ist. Die Telefonhersteller haben es auf eine nette Zahl wie 2.0, 3.0 anstatt 2.1329857289918 eingestellt.
Zusammenfassend lässt sich sagen, dass CSS-Pixel geräteunabhängig sind und wir uns keine Gedanken über die physische Größe der Bildschirme und die Anzeigedichten usw. machen müssen.
Die Moral der Geschichte lautet: Machen Sie sich keine Sorgen um das Verständnis der physischen Pixelgröße des Bildschirms. Du brauchst es nicht. 50px sollte auf allen Mobilgeräten ungefähr gleich aussehen, es kann jedoch leicht variieren, aber das CSS-Pixel ist unsere geräteunabhängige Methode zum Erstellen konsistenter Dokumente und Benutzeroberflächen
Ressourcen: