px、em、rem的区别

px:在web页面制作的初期,我们都是使用“px”来设置我们的文本,因为他比较精确。但是这种方法存在一个问题,当用户在浏览器中缩放Web页面时,他改变了浏览器的字体大小,这时会使用我们的Web页面布局被打破。因此,这时就提出了使用“em”来定义Web页面的字体。

em:而em需要一个参考点,一般都是以的“font-size”为基准。比如说我们使用“1em”等于“10px”来改变默认值“1em=16px”,这样一来,我们设置字体大小相当于“14px”时,只需要将其值设置为“1.4em”。我们一般会在body上设置font-size=62.5%来设置基准点。这样你14px只需要写成1.4em。当然em是相对单位,如果你在父元素上设置了font-size=1.4em,如果你在子元素上再设置一个1.4em的话,是不对的,因为子元素的font-size是相对的父元素的1.4em再来计算得出的。所以,这点要注意一下。如果子元素要14px的话,还是设置font-size是1em便好。

rem: 在rem还未出现之前,用em来定义父元素和子元素不同的字体大小时候还是挺麻烦的,这样一层一层算起来很老火。如果可以兼有em的优点又摒弃它计算起来麻烦的缺点的话就完美了。rem在此背景下应运而生。CSS3引入了rem,它是相对于根元素,这样就意味着,我们只需要在根元素确定一个参考值,,在根元素中设置多大的字体,这完全可以根据您自己的需要。我在根元素中定义了一个基本字体大小为62.5%(也就是10px。设置这个值主要方便计算,如果没有设置,将是以“16px”为基准 )。从上面的计算结果,我们使用“rem”就像使用“px”一样的方便,而且同时解决了“px”和“em”两者不同之处。

浏览器的兼容性方面

rem是CSS3新引进来的一个度量单位,所以就存在在不支持CSS3的浏览器,以下浏览器都支持:Mozilla Firefox 3.6+、Apple Safari 5+、Google Chrome、IE9+和Opera11+。

如果想兼容IE的话,也可以把“px”和“rem”一起使用,用"px"来实现IE6-8下的效果,然后使用“Rem”来实现代浏览器的效果。

你可能感兴趣的:(px、em、rem的区别)