Css 分区宽度,单位为厘米(英寸)

Css 分区宽度,单位为厘米(英寸),css,Css,我需要把我的网站div,这是正好25厘米宽(10英寸)在每个显示器。我怎么能做到 我怎么能做到 你不能。更新:显然,你可以在许多现代系统上:查看@Tomas的答案。不过,它似乎并不总是完全可靠的 旧答案:你不能。监视器显示不同数量的像素。不同显示器的像素大小差别很大 如果您知道监视器的大小,可以使用多种方法插值像素大小。此信息有时可供操作系统使用;然而,网站不可能掌握这些信息 唯一的方法是让用户进行校准。例如,要求用户将一张A4纸张放在显示器上,并使用可拖动的标尺确定其覆盖的区域。利用这些信息,

我需要把我的网站div,这是正好25厘米宽(10英寸)在每个显示器。我怎么能做到

我怎么能做到

你不能。更新:显然,你可以在许多现代系统上:查看@Tomas的答案。不过,它似乎并不总是完全可靠的

旧答案:你不能。监视器显示不同数量的像素。不同显示器的像素大小差别很大

如果您知道监视器的大小,可以使用多种方法插值像素大小。此信息有时可供操作系统使用;然而,网站不可能掌握这些信息

唯一的方法是让用户进行校准。例如,要求用户将一张A4纸张放在显示器上,并使用可拖动的标尺确定其覆盖的区域。利用这些信息,您可以计算出需要显示25厘米的像素数

更新:@Tomas在他的回答中声称,在屏幕上使用CSS
cm
值是有效的

事实上,在我的Windows 7和23英寸即插即用TFT显示器(1920x1080像素)上也是如此:
21cm
可以完美地转换为Chrome 7、IE6(!)、IE7和Firefox 3.6的A4纸张的短边

不过,它似乎并不完全可靠:@Yi Jiang无法让它在使用Ubuntu Linux的TFT上工作;而且,较旧的显示器可能无法发送其大小信息,因此操作系统无法确定正确的大小


这里有一个简单的测试方法。

您需要掌握显示器的分辨率和显示器的分辨率,才能计算出这一点

给定这两个值,您将能够计算所需的像素数


但是,您无法从网站上获取这些信息。

我认为布局引擎需要知道三件事才能做到这一点:

  • 屏幕分辨率
  • 新闻部
  • 物理监视器大小

  • 据我所知,它不知道这三种情况。

    如果您声明它是站点中的
    ,我们知道您处于web浏览器环境中

    遗憾的是,web浏览器无法找到屏幕的DPI。您可以找到屏幕分辨率,这样您就可以知道用户是否有1024x760或其他分辨率,但您永远无法知道这些1024x768像素是否显示在iPhone大小的屏幕或广告牌上,或介于两者之间的任何位置


    很抱歉。

    您可以简单地使用CSS中的
    cm
    单元:

    #mydiv { width: 25cm; }
    
    请注意,正如其他人指出的,结果仍然取决于操作系统对监视器大小的正确读取


    有关详细信息,请参阅。

    您不能。由于Windows API返回的值不可靠,程序只能通过询问EDID来获取屏幕的真实物理尺寸。程序可以获取分辨率(例如1280 x 1024)和屏幕dpi的真实值,但浏览器本身无法做到这一点

    屏幕的“物理dpi”和“屏幕dpi”之间经常存在混淆。物理dpi(更恰当地称为每英寸像素数)是通过将屏幕的最大像素宽度除以物理(标尺)得到的以英寸为单位的宽度。每英寸像素数由制造过程固定。屏幕dpi是用户可以通过控制面板设置的数字,其唯一目的是将以英寸为单位的值转换为像素数。用户可设置的屏幕dpi值与物理dpi(每英寸像素数)没有任何直接关系只是一个默认值为96的数字。96或120没有什么神奇之处

    屏幕像素数=英寸数x屏幕dpi
    就这么简单

    23英寸显示器上1920 x 1080英寸的21厘米“转换”为A4纸张的宽度(21厘米)的原因是,23英寸对角线的屏幕宽度为20.05英寸,1920像素时,像素密度为每英寸95.76像素。
    屏幕dpi默认值为96,则一英寸为:像素=1 x 96=96像素
    23英寸屏幕的像素密度为每英寸95.76像素,这与指定1英寸长度时获得的像素数相匹配,默认屏幕dpi值为96


    如果控制面板中的屏幕dpi发生变化,或监视器视频分辨率发生变化,则21厘米与A4的宽度不匹配。

    出于打印原因或在屏幕上?请注意,25厘米10英寸而25.40英寸更接近(1厘米=0.3907008英寸四舍五入)我很好奇:你为什么真的要这么做?你是想模拟现实生活中物体的“实际大小”显示吗?@Mark:反过来说:1in正好等于2.54cm:@m_gol:CSS将像素定义为角度测量,而不是屏幕像素的数量:因此,你绝对可以基于““CSS像素”。你无论如何都无法从网站中获取信息。在Windows程序中,这是可能的(Windows 7似乎知道我的屏幕有多大)@Pekka:是的,桌面应用程序可以获取这些数据,因为它可以直接与显示器和图形卡进行通信。但是浏览器不能,这就是问题所在。@Spudley放松点。我不是批评Chris的答案,只是增加了一个方面note@Pekka--呵呵,对不起,我不是有意批评你的,我只是想补充一下这是一个有趣的话题,@Spudley是的:)而且@Tomas声称这可以用
    cm
    CSS值来完成。我不相信浏览器能正确地做到这一点……我要做一些测试。上面的两个就足够计算第三个了。DPI是每英寸点数。1/DPI是每点英寸。这就足够计算了。所以he需要2.或1.和3.aa,而我错了-较新的显示器会向操作系统报告其DPI,浏览器确实会接收到。我可以更改我的