285月

CSS em的运用以及与px的区别

SEO/网站推广, 前端开发DIV+CSS

最近在做Ipad的界面,领导需要用em的可缩放的字体来编写页面,因此又温习了一下em在网页中的具体运用,下面是网上查到的一些资料。

一般做网页我们都使用12px作为网站的主体字体大小。10px太小,14px容易看清,中文字体就出现锯齿的边缘了,做英文网站的时候还是觉得11px的英文字体显得网站比较精致。

但是 在IE浏览器,我们无法通过“查看”菜单里的调整“文字大小”选项来缩放页面文字的大小。那就来介绍一下为什么用em单位作为字体显示单位

px像素(Pixel)。相对长度单位。像素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相对于px有什么优势:

1. em的值并不是固定的。

2. em会继承父级元素的字体大小。

em和px如何进行换算

任意浏览器的默认字体高都是16px。所有未经调整的浏览器都符合: 1em=16px。那么12px=0.75em,10px=0.625em。

为了简化font-size的换算,需要在css中的body选择器中先全局声明 Font-size=62.5%,很多初学者可能会在此定义0.625em或者直接定义12px,这是没有效果的,一定要定义font-size=62.5%!

这就使em值变为 16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只需要将你的原来的px数值除以10,然后换上em作为单位就行了。

由于em具有会继续父级出血元素的字体大小的特点,这使得1em=10px,所以12px=1.2em。px与em的转换通过10就可以得来。

CSS中如何应用em

1. body选择器中声明Font-size=62.5%。

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(1.2em)大小的汉字在IE中并不等于直接用12px定义的字体大小,而是稍大一点。解决办法是在body选择器中把62.5%换成63%就能正常显示了。原因可能是IE处理汉字时,对于浮点的取值精确度有限。

本现象只发生在12px的汉字,英文不存在此现象。




分享到:



No comments

星期六, 5月 28th, 2011 | 分类:SEO/网站推广, 前端开发DIV+CSS | RSS 2.0 | 留言/评论 | Trackback

留言