[转]你应该知道的CSS文字大小单位PX、EM、PT

  

 

  这里引用的是Jorux的“95%的中国网站须要重写CSS”的文章, 题目有点吓人,可是确实是如今国内网页制做方面的一些缺陷。我一直也搞不清楚px与em之间的关系和特色,看过之后确实收获很大。平时都是用px来定义字 体,因此没法用浏览器字体放大的功能,而国外大多数网站均可以在IE下使用。由于:css

 

  1. IE没法调整那些使用px做为单位的字体大小;html

  2. 国外的大部分网站可以调整的缘由在于其使用了em做为字体单位;html5

  3. Firefox可以调整px和em,可是96%以上的中国网民使用IE浏览器(或内核)。浏览器

 

  px像素(Pixel)是相对长度单位,像素px是相对于显示器屏幕分辨率而言的。(引自CSS2.0手册)工具

  em是相对长度单位,相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。(引自CSS2.0手册)post

 

  字体单位使用em能支持IE6下的字体缩放,在页面中按ctrl+滚轮,字体以px为单位的网站没有反应。字体

  px是绝对单位,不支持IE的缩放。网站

  em是相对单位,网页中的文字能放大和缩小。将行距(line-height),和纵向高度的单位都用em。保证缩放时候的总体性。spa

  任意浏览器的默认字体高都是16px。全部未经调整的浏览器都符合: 1em=16px。那么12px=0.75em,10px=0.625em。为了简化font-size的换算,须要在css中的body选择器中声明 Font-size=62.5%,这就使em值变为 16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只须要将你的原来的px数值除以10,而后换上em做为单位就好了。操作系统

  em有以下特色:

  1. em的值并非固定的;

  2. em会继续父级元素的字体大小。

  因此咱们在写CSS的时候,须要注意:

  1. body选择器中声明Font-size=62.5%;(Font-size=63%;用于ie6兼容)

  2. 将你的原来的px数值除以10,而后换上em做为单位;

  3. 从新计算那些被放大的字体的em数值。避免字体大小的重复声明。

 

  也就是避免1.2 * 1.2= 1.44的现象。好比说你在#content中声明了字体大小为1.2em,那么在声明p的字体大小时就只能是1em,而不是1.2em, 由于此em非彼em,它因继续#content的字体高而变为了1em=12px。

  可是12px汉字例外,就是由以上方法获得的12px(1.2em)大小的汉字在IE中并不等于直接用12px定义的字体大小,而是稍大一点。这个问题 Jorux已经解决,只需在body选择器中把62.5%换成63%就能正常显示了。缘由多是IE处理汉字时,对于浮点的取值精确度有限。不知道有没有 其余的解释。

 

  单位pt的说明

  在印刷排版中,point是一个绝对值,它等于1/72英寸,能够用尺子丈量的,物理的英寸。可是在css中pt含义却并不是如此。由于咱们的显示器 被分割为了一个个的像素,单个像素只能有一种颜色 (为了简化,这里暂不讨论次像素反锯齿技术),要在屏幕上显示,必须先把以 pt 为单位的长度转换为以像素为单位的长度,这个转换的媒介,就是 DPI (事实上,这里的所谓的 DPI,是操做系统和浏览器中使用的术语,即为 PPI, pixels per inch,和扫描仪、打印机、数码相机中的 DPI 是不一样的概念)。

 

  例如,不管在哪一个操做系统中,Firefox 浏览器默认的 DPI 都是 96,那么实际上 9pt = 9 * 1/72 * 96 = 12px。

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

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

 

  如今咱们能够回答这样一个问题,网页上 9pt 的字体究竟占用了多宽的空间?答案是:  9 * 1/72 * 96 * 11.2992 / 1024 = 0.1324 英寸 = 0.3363 厘米。

  虽然pt是绝对单位,可是那只是针对输出设备而言的,在文字排版工具(word,abobe)中是很是有用的字体单位。无论显示器的分辨率是多少,打印在纸面上的结果是同样的。

  可是网页主要为了屏幕显示,而不是为了打印等其余须要的。而px可以精确地表示元素在屏幕中的位置和大小。

  固然。在dpi是96的状况下,9pt=12px。

 

  附px、em、%和pt换算表

转自:http://www.html5cn.org/article-5357-1.html

转载于:https://www.cnblogs.com/5ini99/p/3516698.html