css单位中px和em,rem的区别

css单位中分为相对长度单位、绝对长度单位。css

wKiom1mpJyCRZ56XAABK9hh9xdg818.jpg-wh_50

今天咱们主要讲解rem、em、px这些经常使用单位的区别和用法。html

px(绝对长度单位)前端

相信对于前端来讲px这个单位是你们并不陌生,px这个单位,兼容性能够说是至关能够,你们对px的了解确定是没有很大的问题的。浏览器

em(相对长度单位)安全

使用:一、浏览器的默认字体都是16px,那么1em=16px,以此类推计算12px=0.75em,10px=0.625em,2em=32px;app

二、这样使用很复杂,很难很好的与px进行对应,也致使书写、使用、视觉的复杂(0.75em、0.625em全是小数点);ide

三、为了简化font-size的换算,咱们在body中写入一下代码字体

body {font-size: 62.5%;  } /*  公式16px*62.5%=10px  */  

这样页面中1em=10px,1.2em=12px,1.4em=14px,1.6em=16px,使得视觉、使用、书写都获得了极大的帮助。spa

例子以下:htm

<div class="font1" style='font-size:1.6em'>我是1.6em</div>

运行效果为:


wKiom1mpJzDy4erUAABKKD5Shio068.png-wh_50


缺点:

一、em的值并非固定的;

二、em会继承父级元素的字体大小(参考物是父元素的font-size;);

三、em中全部的字体都是相对于父元素的大小决定的;因此若是一个设置了font-size:1.2em的元素在另外一个设置了font-size:1.2em的元素里,而这个元素又在另外一个设置了font-size:1.2em的元素里,那么最后计算的结果是1.2X1.2X1.2=1.728em

例如:

<div class="big">
   我是大字体
  <div class="small">我是小字体</div>
</div>

样式为

<style>
    body {font-size: 62.5%; } /*  公式:16px*62.5%=10px  */
   .big{font-size: 1.2em}
   .small{font-size: 1.2em}
</style>

但运行结果small的字体大小为:1.2em*1.2em=1.44em

如图:


wKioL1mpJzDRRhPXAABaz50KSko696.png-wh_50

*宽度高度也是同理

rem(相对长度单位)

使用:一、浏览器的默认字体都是16px,那么1rem=16px,以此类推计算12px=0.75rem,10px=0.625rem,2rem=32px;

二、这样使用很复杂,很难很好的与px进行对应,也致使书写、使用、视觉的复杂(0.75rem、0.625em全是小数点) ;

三、为了简化font-size的换算,咱们在根元素html中加入font-size: 62.5%;

html {font-size: 62.5%;  } /*  公式16px*62.5%=10px  */  

这样页面中1rem=10px,1.2rem=12px,1.4rem=14px,1.6rem=16px;使得视觉、使用、书写都获得了极大的帮助;

例子以下:

<div class="font1" style='font-size:1.6rem'>我是1.6rem=16px</div>

运行效果为:


wKiom1mpJ1rwyiZmAABS6GuTt0Q253.png-wh_50



特色:

一、rem单位可谓集相对大小和绝对大小的优势于一身

二、和em不一样的是rem老是相对于根元素(如:root{}),而不像em同样使用级联的方式来计算尺寸。这种相对单位使用起来更简单。

三、rem支持IE9及以上,意思是相对于根元素html(网页),不会像em那样,依赖于父元素的字体大小,而形成混乱。使用起来安全了不少。

例如:

<div class="big">
   我是14px=1.4rem<div class="small">我是12px=1.2rem</div>
</div>

样式为:

<style>
   html {font-size: 10px;  } /*  公式16px*62.5%=10px  */  
   .big{font-size: 1.4rem}
   .small{font-size: 1.2rem}
</style>

运行结果:


wKioL1mpJ1GChYLYAACdpb6xLMM519.png-wh_50

注意:

  • 值得注意的浏览器支持问题: IE8,Safari 4或 iOS 3.2中不支持rem单位。

  • 若是你的用户群都使用最新版的浏览器,那推荐使用rem,若是要考虑兼容性,那就使用px,或者二者同时使用。

这就是我总体对px、em、rem区别的总结,但愿对你们有帮助,我会持续进步更新个人知识库,嘻嘻*_*

相关文章
相关标签/搜索