关于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、em、%和pt换算表

px、em、%和pt的换算

转载于:https://www.cnblogs.com/bigshow1949/p/7060941.html

px、em、pt之间的区别与互相转换相关推荐

  1. em表示什么长度单位_html 常见的长度单位”px em pt” 简介说

    摘要: 下文讲述常见的长度单位"px em pt"功能说明,如下所示: px.pt.em单位简介说明 px:像素,相对长度单位,像素(px)是相对于显示器屏幕分辨率而言的国内推荐: ...

  2. px~em~pt转换表

    px~em~pt转换表 em的计算是相对的. 1.代码 <!DOCTYPE html> <html lang="en"> <head><m ...

  3. HTML px em pt长度单位(像素 相对长度 点)

    一.PX\EM\PT单位介绍 px单位名称为像素,相对长度单位,像素(px)是相对于显示器屏幕分辨率而言的国内推荐: em单位名称为相对长度单位.相对于当前对象内文本的字体尺寸,国外使用比较多:扩展阅 ...

  4. Android中dp、sp、px、pt之间的换算关系

    Android中dp.sp.px.pt之间的换算关系 换算公式 1 dp = (dpi/160) px; 1 in = 72 pt = dpi dp; 1 pt = dpi/72 dp: 当dpi为1 ...

  5. px/em/pt区别和转换

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

  6. 常用长度单位PX/EM/PT/百分比转换公式

    后两个可以稍微看下,一般情况下就用 px = (4*pt)/3 吧 http://www.weste.net/2009/2-3/1106261329.html PX.PT.EM.ex和in等都是我们常 ...

  7. oracle类型sql转为mysql_Oracle和MySql之间SQL区别(等效转换以及需要注意的问题)...

    >本篇博文是Oracle和MySQL之间的等效SQL转换和不同,目前市面上没有转换两种SQL的工具,小编觉得以后也不一定会有,于是在业余时间整理了一下,如果有什么错误之处请留言告知,小编也是刚 ...

  8. px em pt单位区别

    px单位名称为 像素,相对长度单位,像素(px)是相对于显示器屏幕分辨率而言的国内推荐: em单位名称为 相对长度单位.相对于当前对象内文本的字体尺寸,国外使用比较多: pt单位名称为 点(Point ...

  9. android中的尺寸单位是什么,Android中各种长度尺寸单位(dp,dip,px,sp,pt)的区别

    dip : device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和 QVGA 推荐使用这个,不依赖像素 ...

最新文章

  1. 如何在 Linux 上用 Markdown 编写电影剧本
  2. PTA基础编程题目集-7-15 计算圆周率
  3. InfluxDB 开源分布式时序、事件和指标数据库
  4. UA MATH567 高维统计II 随机向量5 亚高斯随机向量
  5. jQuery的效果方法
  6. html日期英文状态显示不出来,html 时间控件插件laydate, 显示时分,不显示秒
  7. centos iptables
  8. MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验...
  9. Css3 Column实现瀑布流
  10. shrio 权限管理filterChainDefinitions过滤器配置(转)
  11. PHP判断ip地址是否合法
  12. 消防荷载楼板按弹性还是塑性计算_技术周刊 | 关于荷载输入若干问题的解答
  13. python移动文件到指定文件夹
  14. 刑事案件鉴定意见常用质证要点
  15. 腾讯云接入备案流程 新手必看教程
  16. 数据库学习笔记【MySQL】
  17. 阿里云ECS服务器内存一直居高不下,被挂木马解决方法
  18. 威联通QnapClub软件源汉化加速
  19. ssh+Google双重认证
  20. 985毕业,沪漂10年,月薪4w,我却活得一地鸡毛

热门文章

  1. k8s部署ingress:使用heptio-contour部署ingress controller(通过sealos安装,非nginx-ingress类型)
  2. Deepin v20依赖错误,检测更新失败解决办法
  3. linux sort排序工具和uniq去重工具使用示例
  4. Apollo后台配置:关联公共Namespace(类似与继承父类配置)
  5. 【视频】vue 插值表达式之三元运算符的使用
  6. vcruntime140.dll 丢失64位系统(mysql8安装失败提示)
  7. Hibernate快速入门
  8. mysql apache php 容器_docker 容器的使用[php 5.6 mysql5.7]
  9. 从源码角度看Android系统init进程启动过程
  10. 机器的速度与主频之间的关系