CSS中px单位和em单位的区别
大家在修改WordPress主题的时候一定遇到过
1 |
Font-size:1.5em; |
这样的代码吧?
在国外CSS编写中,使用em作为单位是很多的,一是人性化考虑,二是受到美国劳工部Section 508法案的强行限制。
在网页设计中,常用到的度量单位一共有三种,分别是px/em/pt
px单位名称为像素,相对长度单位,像素(px)是相对于显示器屏幕分辨率而言的,国内的网站很多都是采用px作为单位的。
em单位名称为相对长度单位。相对于当前对象内文本的字体尺寸。在国外使用的很多。众多先进浏览器【IE除外的基本都是】都支持字体调整。
pt单位名称为点(Point),绝对长度单位,这个很老了,老到胡子都一把了。。基本没有使用的了。。
em与px换算
任意浏览器的默认字体高度16px(16像素)。
所有未经调整的浏览器都符合: 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的时候如果要用em为单位,需要注意两点:
1. body选择器中声明Font-size=62.5%;
2. 将你的原来的px数值除以10,然后换上em作为单位;
3. 重新计算那些被放大的字体的em数值。避免字体大小的重复声明。
也就是避免1.2 * 1.2= 1.44的现象。比如说你在#content中声明了字体大小为1.2em,那么在声明的字体大小时就只能是1em,而不是1.2em, 因为此em非彼em,它因继承#content的字体高而变为了1em=12px。
大D在这里建议不要使用em作为中文站点的文字单位,会导致文字变形十分严重的。
P.S.什么是Section 508
Section 508是美国劳工部将1973年版美国劳工复健法的改进法案,它是一部联邦法律,规定了所有由联邦政府发展、取得、维持或使用的电子和信息技术都必须能让残疾人“可以接近”。
简单的说,这是一部强行提高电子信息技术残疾人用户体验的一个法案。。
在想想一个导盲犬在我天朝都不能很好的被公众认可。。唉。。
已有 2 条评论
发表评论
电子邮件地址不会被公开。 必填项已标注。
以前总是弄不清
现在总算得正解了
呵呵
嘿嘿。。这个我一开始也弄不明白。。