首页 > css里面的单位:em、rem有什么不同?

css里面的单位:em、rem有什么不同?

css里面的单位:em、rem有什么不同?


em是相对于父元素的font-size属性值来计算的
rem是相对于html标签的font-size属性值来计算的

<html style="font-size:20px;">
    <body>
        <div style="font-size:10px;">
            <div style="font-size:1em;">1em*10=10px</div>
            <div style="font-size:1rem;">1rem*20=20px</div>
        </div>
    </body>
</html>

http://www.w3cplus.com/css3/define-font-size-with-css3-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*/}
【热门文章】
【热门文章】