Div宽度(cm)

时间:2010-10-26 11:33:07

标签: css

我需要在每个显示器中放入我的网站div,其宽度恰好为25厘米(10英寸)。我怎么能这样做?

6 个答案:

答案 0 :(得分:20)

您可以在CSS中使用cm单位:

#mydiv { width: 25cm; }

请注意,正如其他人所指出的,结果仍然取决于操作系统正确读取显示器大小。

有关详细信息,请参阅spec

答案 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)

您需要掌握显示器的分辨率和显示器的dot pitch才能计算出来。

根据这两个值,您将能够计算出所需的像素数。

但是,您无法从网站获取此信息。

答案 4 :(得分:1)

鉴于您在网站中声明它是<div>,我们知道您处于网络浏览器环境中。

可悲的是,网络浏览器无法找到屏幕的DPI。您可以了解屏幕分辨率是什么,因此您将知道用户是否具有1024x760或其他任何内容,但您永远不会知道这些1024x768像素是在iPhone大小的屏幕或广告牌上显示,还是介于两者之间。

很抱歉。

答案 5 :(得分:0)

我相信布局引擎需要知道三件事才能实现这个目标:

  1. 屏幕分辨率
  2. DPI
  3. 物理监视器大小
  4. 据我所知,它并不知道所有三个。