Si está haciendo esto en javascript/mootools, CSS units es su amigo. Puede especificar tamaños en pulgadas o centímetros, o incluso puntos (1/72 de pulgada). Si necesita DPI por alguna razón, aunque puede especificar tamaños en esas unidades, simplemente ajuste el tamaño del div "de tamaño variable" que está usando a un tamaño conocido y calcule desde el tamaño de píxel traducido.
Editar:
Por desgracia, las unidades de CSS puntos, cm, y en que no son físicamente correcta. Solo son relativamente correctos. Esto fue lo primero que intenté con hasta que me di cuenta de que no estaba trabajando en y comprobé la especificación CSS ... en mi consternación. - Brandon Pelfrey
Eso es un buen punto; los navegadores tienden a falsificarlo asumiendo un DPI predeterminado (creo 72 o 96) y yendo con eso.
Bueno, si necesita un tamaño de precisión como el que está pidiendo, no tiene suerte. Nunca podrá obtenerlo sin poder leer tanto la resolución actual del monitor en el que se encuentra el navegador como el "área de pantalla visible" de ese monitor. No es posible conseguirlo a través de Javascript.
Sugiero que realice la suposición predeterminada de que los navegadores hacen y el tamaño de acuerdo con las unidades de CSS. A continuación, puede permitir que los usuarios "ajusten el tamaño" con el método que mencionó, pero solo si es necesario. Haga esto en una página separada con el cálculo DPI almacenado como parte de la sesión de los usuarios o como una cookie.
Alternativamente, una vez que Microsoft corrige this bug, puede usar las "unidades independientes del dispositivo" de Silverlight para obtener una escala precisa.
duplicado posible de [Detectar el sistema de DPI/PPI de JS/CSS?] (Http://stackoverflow.com/questions/279749/detecting-the-system-dpi-ppi-from -js-css) – Endless