`
gray888
  • 浏览: 530521 次
  • 性别: Icon_minigender_2
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

em和px两种字体单位的区别

阅读更多

字体单位应该用em而不用px,原因简单来说就是支持IE6下的字体缩放,在页面中按ctrl+滚轮,字体以px为单位的网站没有反应。px是绝对单位,不支持IE的缩放,em是相对单位。
我在调整本blog的时候,发现不仅仅是字体,将行距(line-height),和纵向高度的单位都用em。保证缩放时候的整体性。

怎么将px换成em呢?特地转jorux06年12月的一篇文章,因为中文站用px的太多了,如果你是对代码不敏感的纯设计师,可以向技术人员或者页面制作人员请教:

em是何物?
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会继承父级元素的字体大小。

重写步骤:
1. body选择器中声明Font-size=62.5%;
2. 将你的原来的px数值除以10,然后换上em作为单位;
简单吧,如果只需要以上两步就能解决问题的话,可能就没人用px了。经过以上两步,你会发现你的网站字体大得出乎想象。因为em的值不固定,又会继承父级 元素的大小,你可能会在content这个div里把字体大小设为1.2em, 也就是12px。然后你又把选择器p的字体大小也设为1.2em,但如果p属于content的子级的话,p的字体大小就不是12px,而是1.2em= 1.2 * 12px=14.4px。这是因为content的字体大小被设为1.2em,这个em值继承其父级元素body的大小,也就是16px * 62.5% * 1.2=12px, 而p作为其子级,em则继承content的字体高,也就是12px。所以p的1.2em就不再是12px,而是14.4px。
3. 重新计算那些被放大的字体的em数值。避免字体大小的重复声明,也就是避免以上提到的1.2 * 1.2= 1.44的现象。比如说你在#content中声明了字体大小为1.2em,那么在声明p的字体大小时就只能是1em,而不是1.2em, 因为此em非彼em,它因继承#content的字体高而变为了1em=12px。

诡异的12px汉字(原因待查)
本人在完成em转换时还发现了一个诡异的现象,就是由以上方法得到的12px(1.2em)大小的汉字在IE中并不等于直接用12px定义的字体大小,而 是稍大一点。这个问题我已经解决,你只需在body选择器中把62.5%换成63%就能正常显示了。原因可能是IE处理汉字时,对于浮点的取值精确度有 限。阅读本篇的读者还有其他解释吗?
本现象只发生在12px的汉字,英文不存在此现象。你可以在这里下载到此表现此现象的文件。下载后请读者用IE打开sample.htm, 可以看到第一段文字明显长于第二段。然后你可以用编辑器打开style.css,看看究竟发生了什么。解决方法就是把style.css中的62.5%换为63%。演示链接

还可以做哪些改进

为什么还需改进:
1. 你的网站css过于复杂,以至于不知道元素的从属关系,很难重写css;
2. 绝大部分人看了本文之后仍然不会重写css;
3. 很大部分人不知道浏览器可以调整页面的字体大小。

所以你需要一个诸如本站信息框中的字体大小调整控件。
相信本站读者的英语能力,这里就不再罗嗦了,请参看:The Text Changer

Important reference:
1. How to size text using ems
2. The Text Changer

分享到:
评论

相关推荐

    css中单位px和em的区别

    在众多单位中,`px`(像素)和`em`是两种最常见的长度单位,它们各自拥有独特的特性和应用场景,理解它们之间的区别对前端开发者来说尤为重要。 ### `px`单位解析 `px`,全称为pixel,中文翻译为“像素”,是最...

    em是何物 em与px的介绍及换算方法

    在网页设计和CSS布局中,em和px是两种常见的长度单位。它们各有特性和用途,理解它们的区别和换算方式对于创建响应式和灵活的网页布局至关重要。 首先,em单位代表的是相对于当前元素的字体大小的单位。在大部分...

    CSS中单位px与em的区别(推荐)

    在CSS布局和样式设计中,理解像素(px)和em单位的区别是非常重要的,因为它们直接影响到网页的可读性和响应性。下面将详细解释px和em单位,并探讨它们在实际应用中的差异。 首先,像素(px)是绝对单位,代表显示器上...

    CSS 中px、em、rem、%、vw、vh单位之间的区别详解

    本文将详细解析px、em、rem、%、vw和vh这些单位的区别及其应用场景。 1. **px (像素)**: 像素是绝对长度单位,它基于屏幕的物理分辨率。1px表示设备上的一点,通常用于创建精确的图形或保持元素大小恒定。由于px是...

    浅析rem和em和px vh vw和% 移动端长度单位

    移动端开发中的长度单位主要有以下几种:px、em、rem、vh、vw和%。它们各自的特点和用途不同,在移动端开发中扮演着重要的角色。 首先来聊聊em单位。em是一个相对单位,它指的是当前字体的字号大小。浏览器默认字体...

    CSS的em、px、pt长度单位转换示例

    CSS定义了几种长度单位,包括相对单位和绝对单位,其中em、px和pt是最常用到的。下面将详细解释这些单位以及它们之间的换算关系。 首先,pt(Point)是一个绝对长度单位,主要用于打印媒体。1点等于1/72英寸。在...

    css中em px 区别你真的了解吗

    这两种单位在页面设计中的应用和含义有着明显的区别,且各自的优势和劣势影响着网页的可访问性和响应性。 px,也就是像素单位,是一个绝对单位。像素单位在设计网页时,可以保证在不同设备和分辨率下,元素的大小...

    完美实现响应式em

    em是一种相对单位,基于父元素的字体大小,使得布局更加灵活,更适合响应式设计。 1. **em单位介绍**: em单位是一个相对于当前元素字体大小的长度单位。如果在一个元素中设置一个元素的宽度为1em,那么它的宽度将...

    css中的px、em、rem、pt 特点和区别及换算详解

    在CSS中,像素(px)、em、rem和pt是四种常用的长度单位,它们各自具有不同的特点和用途。了解这些单位的特点和区别对于创建响应式和适应不同设备的网页设计至关重要。 1. **像素(px)**: 像素是CSS中最基本的...

    em px的关系

    本文将重点探讨CSS中两种常见的长度单位——em和px,它们之间的关系以及如何在实际项目中合理运用。 #### em与px的概念 1. **em单位**:em是一种相对单位,它的值取决于其父元素的字体大小。例如,如果一个元素的...

    PX to EM-crx插件

    在Web设计领域,像素(PX)和相对单位(如EM)是两种常用的尺寸单位。"PX to EM-crx插件"是一个专门为开发者设计的工具,它允许用户方便地将设计中的像素值转换为相对的EM单位。EM单位是一种基于父元素字体大小的...

    CSS中强大的EM,css的em属性学习全攻略.pdf

    为了创建弹性布局,我们需要掌握字体大小、像素(px)和EM单位之间的转换关系。像素是绝对单位,而EM单位是相对单位,它们之间可以通过简单的乘法运算进行转换。例如,一个宽度为100px的元素,如果使用EM单位表示,...

    详解CSS3 rem(设置字体大小) 教程

    css3新增了相对单位 rem ,使用rem同em一样皆为相对字体大小单位,不同的是rem相对的是HTML根元素。...在详细介绍rem之前,我们先一起来回顾一下我们常用的两种记量单位,也是备受争论的两个: PX为单位

    搞清楚CSS中单位px与em之间的关系和特点

    总结来说,px与em这两种单位各有优缺点,在实际应用中应当根据具体情况选择合适的单位。px单位适合于需要固定尺寸的布局和元素,而em单位则更适合于需要能够适应用户偏好的字体大小设置。理解两者的转换和特性,有助...

    CSS长度单位 px和pt的区别

    本文主要探讨两种常见的长度单位——px(像素)和pt(点)的区别。 像素(px)是屏幕显示的基本单位,代表显示器上最小的可独立控制的光点。像素不是一个自然界的长度单位,它的大小会随着屏幕分辨率的变化而变化。...

    cordova 安卓修改系统字体不影响页面解决方法

    对于那些不太了解`em`和`rem`工作原理的开发者,建议参考相关文章(如http://www.cnblogs.com/noobfly/p/6207832.html)以深入了解这两种单位的用法和相互关系。 总的来说,解决Cordova安卓应用内H5页面因系统字体...

    轻松掌握CSS3中的字体大小单位rem的使用方法

    众所周知在web中有很多字体单位(font-size)较常见的有em,px,让我们对比一下这两种单位: px是绝对值,准确而稳定.但是它的改变会影响页面布局.em是相对值,它以父元素的大小为基准单位,来计算大小.所以很难把握.考虑到...

    实现字体大中小的另一种方法.rar

    我们可以使用相对单位(如em, rem)或绝对单位(如px, pt)来定义字体大小。然而,当需要动态改变字体大小时,JavaScript就显得更为灵活。传统的JS字号缩放代码通常会遍历页面上的所有文本元素,然后逐个更改它们的`...

Global site tag (gtag.js) - Google Analytics