老是被人问到px、pt和em的区别,自己有时候也会纠结到底该用什么单位,今天特意查了一些文章,下面这篇虽然很久远了,但解释的比较全面,转载收藏之。点击查看原文

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

1. IE无法调整那些使用px作为单位的字体大小;
2. 国外的大部分网站能够调整的原因在于其使用了em作为字体单位;
3. Firefox能够调整px和em,但是96%以上的中国网民使用IE浏览器(或内核)。

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

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

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

px是绝对单位,不支持IE的缩放。
em是相对单位,网页中的文字能放大和缩小。将行距(line-height),和纵向高度的单位都用em。保证缩放时候的整体性。
任意浏览器的默认字体高都是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、pt和em的区别相关推荐

  1. 从理解开始 谈谈px rem 和 em 的区别与联系

    概述 古语有云,没有规矩则不成方圆.秦灭六国之后为了促进国内生产力的发展,也是大力推进全国度量衡的统一.车同轨,书同文.与"尺寸"相关的问题(手动滑稽),从古至今一直为人们所关注. ...

  2. 像素单位(px pt rem em rpx)

    px px是css像素,是一个虚拟像素,是一个相对单位 例如在两个不同的设备上,1px对应的物理.设备像素是不一样的 pt pt是物理像素,它是一个绝对单位,设备出厂就固定的,不会改变 通常我们说的显 ...

  3. dp的定义原理和dpi,ppi,px,pt,sp之间的区别

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/48007855 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...

  4. dp的定义原理和dpi ppi px pt sp之间的区别

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/48007855   文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一 ...

  5. pt,px,rem和em之间区别总结

    pt与px 在html设计字体的css样式中,有些字体设置成14pt,而不是14px,那pt是什么,和px又有什么关系呢? pt(point)是印刷行业常用的单位,等于1/72英寸,表示绝对长度.px ...

  6. CSS单位 px pt em和rem 之间的区别

    CSS中可以定义大小的单位有四种px,pt,em,rem,而px可以说在网页开发中最常见的单位了.不过现在如今的大多数网站已经开始用rem这个单位了.那么这四个单位有什么区别呢? px|pt|em|r ...

  7. px、pt、em、rem 的区别

    px(pixel) 像素,是屏幕上显示数据的最基本的点,表示相对大小(不同分辨率上px显示不同) pt(point) 印刷行业常用的单位(磅),等于1/72英寸,表示绝对长度 em em是相对长度单位 ...

  8. html5 px和em的区别,pt 与 px、em、rem 的区别与换算

    DPI/pt/px 单位的含义 DPI(Dots Per Inch) 每英寸像素数.Windows 系统默认是 96dpi,Apple 系统默认是 72dpi. pt (point,磅) 是一个物理长 ...

  9. 说说em/px/rem/vh/vw的区别

    一.介绍 传统的项目开发中,我们只会用到px.%.em这几个单位,它可以适用于大部分的项目开发,且拥有比较良好的兼容性 从CSS3开始,浏览器对计量单位的支持又提升到了另外一个境界,新增了rem.vh ...

最新文章

  1. bigdecimal正确用法_深入理解 BigDecimal 的使用
  2. 输入的命令集锦(补充)
  3. python安装numpy模块-python的numpy模块安装不成功简单解决方法总结
  4. 【DBMS 数据库管理系统】数据仓库特征 ( 特征一 : 面向主题组织数据 | 特征二 : 数据集成 | 特征三 : 数据不可更新 | 特征四 : 随时间不断变化 )
  5. 用vs2005 开发arcims htmlViewer
  6. 使用vmware converter转物理机linux的问题
  7. 光盘显示容量但读不出文件_软网推荐:文件夹容量属性增强显示
  8. 【机器视觉】 global算子
  9. 审计日志删除 oracle,oracle audit,怎么审计ORACLE日志
  10. java.lang.IllegalStateException: ContainerBase.addChild: start
  11. TabControl控件用法图解
  12. 团队编程项目作业1-成员简介及分工
  13. 21秋期末考试工程项目管理10324k2
  14. 同一个WiFi,电脑不能访问CSDN网站,手机却可以,换一个网络电脑就可以是什么原因?
  15. linux模拟tcp测试工具,TCP测试小工具tcping for linux
  16. active控件和java脚本_Active控件问题小结(附解决办法)
  17. 模板方法 (宝,我输液了,输的想你的夜)
  18. 微信小程序显示圆形图片
  19. 阻抗测试仪软件,特性阻抗测试仪 阻抗测试仪 Tektronix 泰克 TDR DSA8300
  20. MODBUS寄存器从40000开始而不从0开始,有什么特别的说法吗,还是仅仅是大家都习惯

热门文章

  1. 基于Pytorch实现的声纹识别模型
  2. 关于物联网通信协议(接入协议)
  3. RabbitMQ的持久化
  4. @Aspect注解使用场景
  5. 关于Connection aborted等问题的解决
  6. 12年前的作品──《美绿中国象棋》制作过程及算法简介
  7. matlab修改图例/图注/legend中线条的粗细
  8. Vue表格实现隔行变色
  9. 第1阶段C++ 匠心之作 从0到1入门
  10. App前端,Web前端,后端,微信小程序到底该学啥?