[beletörődve] Böngésző DPI

Van egy hagyományos képarányú (5:4) 19"-os TFT monitorom. Ez ugyebár 1280x1024 mellett 86 dpi-t jelent.

Az oprendszer 64 bites Debian 7.0 (vagy akár 8.0) Az X.org láthatóan jól van beállítva:


$ xdpyinfo | egrep (resolution|dimension)
  dimensions:    1280x1024 pixels (377x302 millimeters)
  resolution:    86x86 dots per inch

illetve:


$ xrandr | grep HDMI1
HDMI1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm

illetve:


$ ps ax | grep /usr/bin/X
 2255 tty7     Ss+    3:12 /usr/bin/X -dpi 86 :0 vt7

illetve:


$ xrdb -query | grep dpi
Xft.dpi:	86

Ezek mellett a legtöbb program mérethelyesen jeleníti meg a dokumentumokat. A Firefoxot (aktuálisan: 38.x) (és a Chromeot, de ez utóbbi kevésbé érdekel) azonban képtelen vagyok lebeszélni a 96 dpi-ről.

Amit szeretnék:
- a centiben/hüvelykben/tipográfiai pontokban megadott méretek méretarányosan jelenjenek meg
- a pixelben megadott méretek pixelhelyesen (natívan) jelenjenek meg.

A Firefox wiki azt mondja, hogy a CSS renderer a layout.css.dpi alapján konvertál méreteket pixellé és viszont. Ennek megfelelően, az alábbiakat próbáltam:

layout.css.dpi=0
layout.css.dpi=86
layout.css.dpi=-1

Látszólag a Firefox tökéletesen ignorálja ezeket az értékeket, akármire állítom - semmi nem változik.

A másik pedig, hogy a doksi szerint a CSS dpi-t képernyő dpi-re arányosítást a layout.css.devPixelsPerPx értéke határozza meg, ahol az 1-es szorzó jelenti a CSS natív méretezést, tehát jelen esetben a 96 dpi-t. Ha ezt 86/96-ra (0.9) állítom, akkor a pontban/centiben/hüvelykben megadott értékek végre mérethelyesek lesznek, azonban a pixelben megadott méreteket is leosztja, tehát nem natívban kapom a pixeles elemeket, hanem ocsmányul elmosva, kicsinyítve.

Valami ötlet azon kívül, hogy vegyek egy pont 96 dpi-s monitort?

Hozzászólások

The unit in doesn't represent a physical inch on screen, but represents 96px. That means that whatever is the real screen pixel density, it is assumed to be 96dpi. On devices with a greater pixel density, 1in will be smaller than 1 physical inch. Similarly mm, cm, and pt are not absolute length

Fasza, tehát hardkódoltuk a 96 dpi-t, a szomszéd tehene pedig dögöljön meg. De akkor mire szolgál(na) a css.layout.dpi opció? Az ellenségbarátaink megtévesztésére?

UPDATE:
Jó, tehát ha jól értem, a CSS eredetileg mérethű volt, és a CSS 2.1-ben fixálták 96 dpi-re, merthogy sok baj volt az elb.szott weboldalak megjelenítésével. Remek javítás! Hibás implementációhoz igazítunk egy mértékegységet!

Valójában persze nem az inch méretét változtatták meg 96 pixelnyire, hanem bevezették a "virtuális pixelt", ami 1/96 inch.

A css.layout.dpi opció pedig ezáltal valószínűleg csendben kimúlt az évek során, csak a dokumentációk nem jelzik.