em与px的区别以及em特点和应用

本文探讨了px和em单位在网页设计中的应用区别,解释了两者的特点及如何在CSS中灵活运用,以适应不同浏览器的字体放大功能。
一直也搞不清楚px与em之间的关系和特点,看过 95%的中国网站需要重写CSS以后后确实收获很大。平时都是用px来定义字体,所以无法用浏览器字体放大的功能,而国外大多数网站都可以在IE下使用。因为

1. IE无法调整那些使用px作为单位的字体大小;
2. 国外的大部分网站能够调整的原因在于其使用了em作为字体单位;
3. Firefox能够调整px和em,但是96%以上的中国网民使用IE浏览器(或内核)。

px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。(引自CSS2.0手册)

em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。(引自CSS2.0手册)

任意浏览器的默认字体高都是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%;
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处理汉字时,对于浮点的取值精确度有限。不知道有没有其他的解释。
pxemrem是用于网页开发中定义长度单位的三种常见选项。它们在使用计算上有一些区别,具体如下: 1. px(像素):px 是最基本的长度单位,表示屏幕上的一个像素点。它是一个绝对单位,意味着它的大小在不同的设备屏幕分辨率下是固定的。px 的使用相对简单,适合在需要精确控制元素大小位置的情况下使用,比如设计稿的还原特定元素的布局。 2. em(相对于父元素字体大小的倍数):em 是一个相对单位,相对于父元素的字体大小进行计算。如果一个元素的字体大小为 16px,设置为 2em,则相当于 32pxem 适合在需要相对于父元素进行缩放的情况下使用,比如设置标题、段落等文本元素的字体大小。 3. rem(相对于根元素字体大小的倍数):rem 也是一个相对单位,相对于根元素(即 html 元素)的字体大小进行计算。 em 不同的是,rem 的计算不会受到父元素字体大小的影响。因此,rem 更适合在需要整个页面元素的大小比例都随着根元素字体大小变化的情况下使用,比如响应式网页设计。 使用场景: - px:适用于需要精确控制元素大小位置,尤其是在固定布局的情况下。 - em:适用于需要相对于父元素进行缩放的文本元素,如标题、段落等。 - rem:适用于需要整个页面元素的大小比例随根元素字体大小变化的响应式设计。 需要注意的是,不同的单位在不同的场景下有不同的优劣,并且可以混合使用。根据实际需求网页布局的要求,选择合适的单位进行使用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值