我需要在每个显示器中放入我的网站div,其宽度恰好为25厘米(10英寸)。我怎么能这样做?
答案 0 :(得分:20)
答案 1 :(得分:11)
我怎么做?
你不能。更新:显然,你可以在许多现代系统上:查看@ Tomas的答案。但是,似乎并不总是完全可靠。
旧答案:你不能。监视器显示不同数量的像素。从显示器到显示器的像素大小变化很大。
如果您知道显示器尺寸,有多种方法可以插入像素大小。此信息有时可供操作系统使用;但是,网站不可能掌握这些信息。
唯一的方法是让用户进行校准。例如,要求用户将A4纸放在显示器上,并使用可拖动的标尺来确定其覆盖的区域。使用该信息,您可以计算显示25厘米所需的像素数。
更新: @Tomas在回答中声称使用CSS cm
值可以在屏幕上显示。
事实上,我的Windows 7和23“即插即用TFT显示器(1920x1080像素):21cm
完全转换为Chrome 7,IE6(!)中A4纸的短边,IE7,Firefox 3.6。
但它似乎并不完全可靠:@Yi Jiang无法使用Ubuntu Linux在TFT上工作;此外,较旧的监视器可能无法通过其大小信息发送,因此操作系统无法确定正确的大小。
这是一个简单的JSFiddle用于测试。
答案 2 :(得分:4)
你做不到。程序只能通过询问EDID来获取屏幕的真实物理尺寸,因为Windows API返回的值不可靠。程序可以获得分辨率的真实值(例如,1280 x 1024)和屏幕dpi,但浏览器不能自己执行任何操作。
屏幕的“物理dpi”与“屏幕dpi”之间始终存在混淆。通过将屏幕的最大像素宽度除以以英寸为单位的物理(标尺)宽度来获得物理dpi,更恰当地称为每英寸像素。每英寸像素由制造过程固定。屏幕dpi是用户可以通过控制面板设置的数字,其唯一目的是将以英寸为单位的值转换为像素数。用户可设置的屏幕dpi值与物理dpi(每英寸像素数)没有直接关系,只是一个默认值为96的数字。没有什么神奇的96或120
屏幕像素数=英寸数x屏幕dpi
就这么简单。
23英寸显示器上的21厘米(1920 x 1080“转换”到A4纸张(21厘米)宽度的原因是因为对角线为23英寸,屏幕宽度为20.05英寸,像素为1920像素密度为每英寸95.76像素
屏幕dpi默认值为96然后为1英寸:像素= 1 x 96 = 96像素
23英寸屏幕的像素密度为每英寸95.76像素,与指定长度为1英寸的像素数相匹配,默认屏幕dpi值为96.
如果在控制面板中更改了屏幕dpi,或者更改了显示器视频分辨率,则21厘米与A4纸张的宽度不匹配。
答案 3 :(得分:2)
答案 4 :(得分:1)
鉴于您在网站中声明它是<div>
,我们知道您处于网络浏览器环境中。
可悲的是,网络浏览器无法找到屏幕的DPI。您可以了解屏幕分辨率是什么,因此您将知道用户是否具有1024x760或其他任何内容,但您永远不会知道这些1024x768像素是在iPhone大小的屏幕或广告牌上显示,还是介于两者之间。
很抱歉。
答案 5 :(得分:0)
我相信布局引擎需要知道三件事才能实现这个目标:
据我所知,它并不知道所有三个。