2010-03-11 65 views
1

我刚刚得到进入网络的发展十分重视,我试图让出现相同的物理尺寸(英寸)的网页在所有浏览器和平台 我相信百分比值的组合和英寸的值可以使一致的用户界面。HTML元素的物理尺寸

我自己的系统是具有1920x1200像素即144DPI的15.4英寸屏幕。

这里最简单的HTML代码,无法显示正确的大小上不同之处的FireFox任何浏览器(试图在Chrome 3,4,歌剧10.5,IE7)

<html><head> 
<body> 
<div 
style="position:absolute; width:2in; height:1in; border:1px solid" > 
hello world</div> 
</body></html> 

铬,歌剧和IE渲染.67英寸盒(他们似乎假定一个96 dpi屏幕)

我运行Windows XP,但我不明白为什么会有所作为。我测试过的其他机器上类似的错误渲染。

我想,当我说“1英寸”在HTML这意味着在现实世界中一个实际英寸....

如何处理呢?

由于提前, 维韦克

编辑:

在2006年,我开发了还活着的视频编辑一个网站的ActiveX控件,在2008年,我们开始看到大量的Vista上使用和更高的DPI屏幕,其使得用户界面无法使用,我重新编写了应用程序,以便根据DPI缩放所有内容,从那时起每个人都很高兴他们不需要使用该功能的眼镜......

Win7和Vista有这个“ DPI缩放“模式是为了允许不识别DPI的应用程序显示(但自从它基本上扩大了应用程序的画布,应用程序看起来模糊)。

我不能相信,调用GetDeviceCaps()或X-Windows平台上类似的比硬编码96 DPI更难。反正它难道不影响以像素为单位测量的任何页面....

+0

短写屏幕标尺我不知道你为什么要这样做? – 2010-03-11 11:51:57

+1

它看起来像我来自你来自印刷背景。网站遵循完全不同的原则,最好是让自己的思维适应新的范式,而不是试图迫使它去做以前的习惯。我还没有看到一个试图使用英寸来设置尺寸的网站。 – dbemerlin 2010-03-11 11:58:24

回答

0

我真的不认为你可以,说实话。

屏幕的DPI是由硬件决定的,即15.4" 屏幕采用1920×1080分辨率= 144DPI。

为什么你需要的网站显示为相同的物理尺寸是多少?当然同样大小成比例如果我使用1600x1050,它应该占用60%?

1

而不是在px中给出大小你只是给它的百分比,以便它可以根据百分比适合在任何屏幕上

0

总之 - 你不能,ü至少在屏幕上。

使用真实世界的单位取决于让客户知道系统的正确DPI。在不打扰的客户和没有正确配置的系统之间,这是一个无望的情况。

如果您希望进行某种比例缩放,以便用户系统的尺寸合理,那么您最好使用em单位根据用户的字体大小进行缩放。这仍然存在问题,即默认值不合适并且用户没有更改它们,但是它比物理单元更经常。

4

无法完成。期。

屏幕是一个像素的网格,这是只有单位的物理显示器识别。任何其他测量必须转换为像素进行显示。

此转换由操作系统的图形子系统完成,该子系统具有内部“DPI”设置 - 因为它是任意的,并不一定对应于任何真实世界设备的实际物理DPI。例如,Windows无论连接到哪个显示器,都默认为96 DPI。

看的东西与“1英寸”的高度的页面,你的机器在它看来,计算出,因为它被设置为144 DPI,“1英寸”是指144个像素,并使其144个像素高,而不管这144个像素将在您的显示器上占用的物理距离。

当具有默认96 DPI设置的典型Windows用户查看它时,他们的计算机会计算出“1in”= 96px,并使其高度为96像素,而不管与这些96像素对应的物理距离如何。

你知道吗? 这是一件好事。这意味着视力不佳的用户可以降低其视频驱动程序的DPI设置,并且以英寸,厘米,点,em或其他“真实世界”单位(即基本上除百分比或像素以外的其他任何物体)以便他们更容易看到它。相反,我们这些不介意小文本的人可以人为地增加我们的DPI设置来缩小这些设置并将更多内容放到屏幕上。

打印页面的暴政,无论我们喜欢与否,都强制事物达到一定的大小,不再是。拥抱这种能力,让您的用户体验他们的体验。不要试图取消 - 你不会成功,你只会在这个过程中惹恼别人。

+0

Windows的默认设置为96 DPI,但可以将其设置为“显示属性”上的任何内容。 我写了很多本机应用程序,我检测系统的DPI(由windows定义)并缩放我的GUI和字体。 我认为所有的浏览器都应该这样做,我要说的就是Firefox能做到这一点!其他浏览器不 - 在我的系统上,8点文本太小,无法阅读,如果以英寸为单位指定网页,那么我不必缩放它们。 GetDeviceCaps()API检索用户提供的DPI,那么难以使用该值而不是硬编码的96? – 2010-03-12 04:34:36

+0

至于固定大小的暴政 - 一个40像素高的文本框,在我的系统上看起来很正常,在96 DPI上看起来很可怕,即使我以百分比的方式指定它,标签占我屏幕高度的2%在较低的DPI系统上看起来超大...... 您希望如何看到漂亮的16磅文字作为默认文件,只是因为这是我的系统上的可读尺寸。 如果用户想要更大的尺寸,所有浏览器都有可用的缩放功能。 当然,面板应该按百分比按比例分配,但肯定不会有任何带有文本的控件。 – 2010-03-12 04:39:01

+0

未检测到系统DPI是一个应用程序问题,任何GUI工具包(在我看来都包括呈现的HTML布局)应该考虑到这一点。使用字体大小作为一种措施是一个愚蠢的解决方案,我不希望所有的图形用户界面都被炸掉,只是因为我增加了一两个点的默认字体大小.... – 2010-03-12 04:41:06