在网上看到px em rem三个单位的区别总结,学习学习,方便以后查看:
1 共同点:三者都是相对单位。
2 具体分析:
1 px为单位
在web页面初期制作中,因为px的稳定和精确,用px设置文本的多。但是有一个弊端:当用户在浏览器中浏览我们制作的web页面时 他改变了浏览器的字体大小,这时会使我们的web页面布局被打破。这样对于那些关于关心自己网站可用性的用户来说,就是一个大问题了。因此,这时就提出了使用‘em’来定义web中的页面的字体。
2 em为单位
这个技术需要一个参考点,一般都一<body>的font-size为基准。比如我们使用 1em等于10px来改变默认值‘1em=16px’,这样一来,我们设置字体大小相当于14px时 只需要将其值设置为1.4em。
em是一个相对值,而且是一个相对于父元素的值,
1 ÷ 父元素的font-size × 需要转换的像素值 = em值
这个也存在一个问题:em是相对于其父元素来设置字体大小的,这样就会存在一个问题,进行任何元素设置,都有可能需要知道其父集元素的大小。在多次使用后,就会带来无法预知的错误风险。而rem是相对于根元素的<html>这样就意味着,我们只需要在根元素确定一个参考值,在根元素中设置多大的字体,这完全可以根绝自己的需要
3 Rem为单位
rem是css3的单位,rem在w3c是font size of the root element。
而rem是相对于页面根元素<html>,这样就意味着,我们只需要在根元素确定一个参考值即可,其它元素设置rem大小都是以html的字体大小设置为参考值进行一个字体大小缩放。
举例说明:
html{font-size:62.5%;/*10 ÷ 16 × 100% = 62.5%*/}body{font-size:1.4rem;/*1.4 × 10px = 14px */}h1{ font-size:2.4rem;/*2.4 × 10px = 24px*/}
在根元素<html>中定义了一个基本字体大小为62.5%(也就是10px。设置这个值主要方便计算,如果没有设置将是以16px为基准,)从上面的计算结果看 我们使用了‘rem’就像是使用了‘px’一样的方便,而且同时解决了‘px’和‘em’两者不同之处。
我在根元素<html>中定义了一个基本字体大小为62.5%(也就是10px。设置这个值主要方便计算:1.2rem即 12px ,1.6rem即16px 。 如果没有设置,将是以浏览器默认的“16px”为基准 )。
浏览器的兼容性:
rem是css3新引进来的一个度量单位,支持的浏览器有:Mozilla Firefox 3.6+、Apple Safari 5+、Google Chrome、IE9+和Opera11+
ie6-8不支持。为了兼容ie6-8,可以考虑使用px和rem一起使用。用px老实现ie6-8的效果。然后使用rem来实现现代浏览器的效果。