这里引用的是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换算表

css字号 h5_你应该知道的CSS文字大小单位PX、EM、PT相关推荐

  1. css中的单位换算_css大小单位px em rem的转换和详解

    css大小单位px em rem的转换和详解 PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位: 3. Firef ...

  2. CSS文字大小单位px、em、pt

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

  3. css没有border,你未必知道的CSS小知识:为什么没有人使用border-image

    之前我曾经写过一篇关于CSS的border-image属性的文章.现在几乎所有的现代浏览器都支持这个属性--除了IE10及以下IE版本. 看起来这是一个非常漂亮的CSS功能,它可以让你用图片修饰元素的 ...

  4. 标准css属性,你一定要知道的css属性值规范

    1.如果值是0,通常都不用带单位 例如:.list{ border: 1px solid 0px; margin: 0px; } 改成:.list{ border: 1px solid 0; marg ...

  5. [css] 写出你知道的CSS水平和垂直居中的方法

    [css] 写出你知道的CSS水平和垂直居中的方法 flex布局水平垂直居中:<!-- html --> <div class="outer"><di ...

  6. [css] 举例说明你知道的css技巧有哪些?

    [css] 举例说明你知道的css技巧有哪些? /* 等比例容器 */ .ratio { position: relative; display: block; } .ratio:before { c ...

  7. css按钮居中_你不一定知道的CSS最小和最大(宽度/高度)知识点及优缺点

    通常,我们希望限制元素相对于其父元素的宽度,同时使其具有动态性.因此,有一个基础宽度或高度的能力,使其扩展的基础上,可用的空间.比如说,我们有一个按钮,它的宽度应该是最小的,不应该低于它的宽度.这就是 ...

  8. 你应该知道的 CSS 基础知识

    一.CSS 是怎么组织的 先看一段 demo: .icon {width: 20px;height: 30px;border-radius: 4px; } 上面的 demo 是我们常见的 CSS 代码 ...

  9. 10个你未必知道的CSS技巧与14种cssdiv中基本滤镜介绍

    2019独角兽企业重金招聘Python工程师标准>>> 1.CSS字体属性简写规则 一般用CSS设定字体属性是这样做的: font-weight:bold; font-style:i ...

最新文章

  1. 运行hadoop fs -ls 命令显示本地目录问题
  2. SBT搭建Spark
  3. 如何撰写较受欢迎的技术文章
  4. 看日本如何用IoT打造智能工厂
  5. 论文阅读课5-DocRED: A Large-Scale Document-Level Relation Extraction Dataset(大规模文档集关系提取数据集
  6. Odoo快速部署 附Odoo的Docker启动脚本
  7. 字符集匹配:\s 匹配一个空格,一边后面加量词表示多个空格,\s*表示0个以上空格,\s+表示1个以上空格,\s相当于[\f\r\n\t ]5种空白字符。...
  8. 通过中序线索二叉树找某节点的后续前驱☆
  9. 操作系统中的page cache机制
  10. FPGA系统设计考虑因素
  11. 一个导出类的内部函数的dll
  12. 算法系列——遗传算法matlab编程详解
  13. MQL5 中的交易操作 - 很简单
  14. RDL 报表 - 横向合并单元格后单元格被撑高
  15. 计算机打数据执行保护删除不掉,XP老是出现“数据执行保护”怎么办?教你方法轻松解决此问题...
  16. 鲲志说:向我跌宕起伏,喜忧参半的2022致敬!
  17. 混沌工程-为什么推广的如此困难
  18. 微商城如何借势618微信营销?5分钟完成活动策划案
  19. android otg 挂载流程,android USB OTG功能如何打开及实现
  20. Bag标签之轻开B2C电子商务网站登录校验实例

热门文章

  1. 如何在CTEX上对论文进行排版
  2. 中文版智能ABC如何移植到英文OS
  3. ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  4. AsyncTask使用
  5. 聚合收款码有限制吗?怎么办理?
  6. Python可以制作植物大战僵尸,你还不知道吗?
  7. Feign传递请求头信息
  8. 切线和倒数_原函数的导数和反函数的导数为什么是倒数关系
  9. 团队作业之一:团队介绍及选题背景与意义
  10. Kafka 消息中间件