首页 > 代码库 > em和rem的区别浅析

em和rem的区别浅析

em相对于父元素,rem相对于根元素,即html,一般 1em=16px,浏览器默认,为了计算方便,我们将font-size 设置为 16px* 0.625=10px 此时1em = 10px 举个列子

body {font-size: 62.5%}
div1 {width: 60em; /*60* 10=600px*/}
div2 {font-size: 20px; /*此时在div 中 1em= 20px*/}

总结起来就是 父元素不设置font-size的话,就继承body 1em=16px,假如你想计算方便可以将body的font-size 设置为 62.5%,rem比起来就相对好理解一点,

html {font-size: 16px;}

那么以后的都是 1rem=16px, 我是这么理解的,希望不要误导你!可以上MDN查看 相关信息。

结构

<body>
    <div class="div1"></div>
    <div class="div2"></div>      
</body>

em

body {font-size: 62.5%; color: #000; font-family: "微软雅黑";}
.div1 {height: 3em; background-color: #333; /*由于chrome字体默认是12px, 所以此时height=36px*/}
ul, ol {list-style: none;}
.div2 {font-size: 20px; height: 2em; background-color: #555; /*这里改变了font-size 所以height=40px*/}

rem

 
 html {font-size: 20px; color: #000; font-family: "微软雅黑";}
 .div1 {height: 3rem; background-color: #333; /*此时height=60px*/}
 ul, ol {list-style: none;}
 .div2 {font-size: 20px; height: 2rem; background-color: #555; /*改变font-size不在影响 所以height=40px*/}

em和rem的区别浅析