关于长度单位pt、px、dpi的误解

时间:2008-06-01 13:30:00 

在印刷排版中“point”是一个绝对的单位,它等于 1/72 英寸。可以用尺子丈量的,物理的英寸。

但在CSS中pt的含义却非如此,例如我们指定一个字体是9pt,浏览器会以CSS规范解释,它等于:

  9 * 1/72 = 1/8 inch

  这是一个误解,因为我们的显示器被分割为了一个个的像素,单个像素只能有一种颜色(为了简化,这里暂不讨论次像素反锯齿技术),要在屏幕上显示,必须先把以pt为单位的长度转换为以像素为单位的长度,这个转换的媒介,就是dpi(事实上,这里的所谓的dpi,是操作系统和浏览器中使用的术语,即为PPI, pixels per inch,扫描仪、打印机、数码相机中的DPI是不同的)。

  例如,无论在哪个操作系统中,Firefox浏览器默认的dpi都是96,那么实际上:

  9pt = 9 * 1/72 * 96 = 12px

  所以,虽然“pdi”中的“I”和“1pt”等于1/72 inch中的“inch”,都不代表物理上的英寸,但这两个单位互相之间是相等的,也就在相乘中约掉了。

  那么,真实的物理长度怎么计算呢?请拿出一把尺子,丈量你的显示器的可见宽度 (我这里是 11.2992 英寸),除以横向分辨率 (我这里是 1024 像素),得到的就是每个像素的物理长度。

  现在我们可以回答这样一个问题,网页上 9pt 的字体究竟占用了多宽的空间?答案是:

  9 * 1/72 * 96 * 11.2992 / 1024 = 0.1324 英寸 = 0.3363 厘米

  有兴趣的朋友可以自己测试一下。

标签:单位,长度,显示,CSS
0
投稿

猜你喜欢

  • 兼容FF的图片切换代码

    2009-09-26 20:15:00
  • ASP 错误代码

    2009-05-11 12:38:00
  • 如何由Sybase向SQL Server移植数据库

    2009-01-20 15:56:00
  • SQL点滴24 监测表的变化

    2011-09-30 11:38:41
  • 用户不需要信息快餐

    2009-02-25 12:34:00
  • 如何让新安装的MySQL数据库变得更安全

    2009-01-04 13:19:00
  • AJAX打造博客无刷新搜索

    2007-08-23 08:48:00
  • 如何测试字符串的长度?

    2009-11-11 20:02:00
  • ASP连接Access数据库的几种方法

    2013-06-01 20:33:19
  • sql ntext数据类型字符替换实现代码

    2011-09-30 11:08:00
  • 网页布局设计基础

    2008-10-16 13:58:00
  • block 和 inline 答案揭晓~ 另付一则,关于 word-break

    2009-12-08 13:06:00
  • SQL Server实现分布式数据库系统的终极目标

    2010-08-05 14:57:00
  • N年前的JAVASCRIPT笔记

    2009-01-07 12:40:00
  • 搞定MySQL数据库中文模糊检索问题

    2007-09-17 12:36:00
  • 如何创建并使用一个断开连接的记录集的数据访问页?

    2009-11-14 20:50:00
  • 如何在页面错误时向数据库中添加记录?

    2010-06-26 12:26:00
  • asp+xml自动将远程页面中的图片下载到本地

    2007-08-23 13:34:00
  • asp如何实现无组件上传二进制文件?

    2010-06-03 10:09:00
  • 不同浏览器的兼容一些写法

    2009-03-26 12:58:00
  • asp之家 网络编程 m.aspxhome.com