在印刷排版中“point”是一个绝对的单位,它等于1/72英寸。可以用尺子丈量的,物理的英寸。
但在CSS中pt的含义却非如此,例如我们指定一个字体是9pt,浏览器会以CSS规范解释,它等于:
9*1/72=1/8inch
这是一个误解,因为我们的显示器被分割为了一个个的像素,单个像素只能有一种颜色(为了简化,这里暂不讨论次像素反锯齿技术),要在屏幕上显示,必须先把以pt为单位的长度转换为以像素为单位的长度,这个转换的媒介,就是dpi(事实上,这里的所谓的dpi,是操作系统和浏览器中使用的术语,即为PPI,pixelsperinch,扫描仪、打印机、数码相机中的DPI是不同的)。
例如,无论在哪个操作系统中,Firefox浏览器默认的dpi都是96,那么实际上:
9pt=9*1/72*96=12px
所以,虽然“pdi”中的“I”和“1pt”等于1/72inch中的“inch”,都不代表物理上的英寸,但这两个单位互相之间是相等的,也就在相乘中约掉了。
那么,真实的物理长度怎么计算呢?请拿出一把尺子,丈量你的显示器的可见宽度(我这里是11.2992英寸),除以横向分辨率(我这里是1024像素),得到的就是每个像素的物理长度。
现在我们可以回答这样一个问题,网页上9pt的字体究竟占用了多宽的空间?答案是:
9*1/72*96*11.2992/1024=0.1324英寸=0.3363厘米
有兴趣的朋友可以自己测试一下。