Nếu bạn đang làm điều này trong javascript/mootools, CSS units là bạn của bạn. Bạn có thể chỉ định kích thước tính bằng inch hoặc cm hoặc thậm chí là điểm (1/72 inch). Nếu bạn hoàn toàn cần DPI vì bất kỳ lý do gì mặc dù bạn có thể chỉ định kích thước trong các đơn vị đó, chỉ cần kích thước div "có thể thay đổi kích cỡ" mà bạn đang sử dụng với kích thước đã biết và tính toán từ kích thước pixel đã dịch.
Edit:
Thật không may, các đơn vị CSS của điểm, cm, và không phải là thể chất đúng. Chúng chỉ tương đối chính xác. Đây là điều đầu tiên tôi cố gắng cho đến khi tôi nhận ra rằng không phải là đang hoạt động và đã kiểm tra thông số CSS .. đến sự mất tinh thần của tôi. - Brandon Pelfrey
Đó là một điểm tốt; trình duyệt có xu hướng giả mạo nó bằng cách giả định một DPI mặc định (tôi nghĩ 72 hoặc 96) và đi với điều đó.
Vâng, nếu bạn cần kích thước chính xác như bạn đang yêu cầu, bạn sẽ không may mắn. Bạn sẽ không bao giờ có thể nhận được nó mà không thể đọc cả độ phân giải hiện tại của màn hình mà trình duyệt đang bật và "vùng màn hình có thể xem" của màn hình đó. Không có cách nào bạn sẽ nhận được điều đó thông qua Javascript.
Tôi khuyên bạn nên đặt giả định mặc định là trình duyệt và kích thước theo đơn vị CSS. Sau đó, bạn có thể cho phép người dùng của mình "điều chỉnh kích thước" bằng phương pháp bạn đã đề cập, nhưng chỉ nếu cần thiết. Làm điều này với trên một trang riêng biệt với tính toán DPI được lưu trữ như một phần của phiên người dùng hoặc dưới dạng cookie.
Ngoài ra, khi Microsoft sửa lỗi this bug, bạn có thể sử dụng "đơn vị độc lập thiết bị" của Silverlight để chia tỷ lệ chính xác.
có thể trùng lặp của [Phát hiện hệ thống DPI/PPI từ JS/CSS?] (Http://stackoverflow.com/questions/279749/detecting-the-system-dpi-ppi-from -js-css) – Endless