EM
- EM 是根据
自身字体
大小来转换成像素;
- 很多时候感觉是根据父节点来计算的,其实是子节点继承了父节点的字体大小,无论什么情况都是先计算出本身字体大小,然后再根据自身字体的大小把 em 转换成像素
- 如果本身的字体也是设置的 em,则先根据父节点的字体算出自身字体的大小
REM
rem 是根据 html 标签的字体大小来转换成对应的像素,而 html 的字体大小又是相对于浏览器设置的字体大小,默认是 16px;
如果 html 的字体大小也设置成 rem,那么这个需要根据浏览器的字体进行转换。
###demo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| <!DOCTYPE html> <html lang="en" style="font-size:20px;"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> .divBorder { border: 1px solid black; margin: 5px; }
.emContainer { font-size: 30px; border: 1px solid black; margin: 5px; }
.继承根节点 { margin-left: 0.8em; border: 1px solid red; }
.继承 { margin-left: 0.8em; border: 1px solid yellow; }
.本身设置字体 { font-size: 40px; margin-left: 0.6em; border: 1px solid green; }
.本身设置em字体 { font-size: 1.5em; margin-left: 0.6em; border: 1px solid green; }
.rem继承根节点 { margin-left: 0.8rem; border: 1px solid red; }
.rem继承 { margin-left: 0.8rem; border: 1px solid yellow; }
.rem本身设置字体 { font-size: 40px; margin-left: 0.6rem; border: 1px solid green; }
.rem本身设置em字体 { font-size: 1.5rem; margin-left: 0.6rem; border: 1px solid green; }
</style> </head>
<body> <h2>em是根据自身的字体大小来计算成对应的px值</h2>
<div class="divBorder"> <div class="rem继承根节点">测试继承根节点,em根据自身从父节点继承的字体大小来计算em的值。</div> </div> <div class="emContainer"> <div class="继承">测试继承父节点的字体大小,em根据自身从父节点继承的字体大小来计算em的值。</div> </div> <div class="emContainer"> <div class="本身设置字体">测试设置本身字体大小,em直接根据自身设置的字体大小进行计算。</div> </div>
<div class="emContainer"> <div class="本身设置em字体">本身字体以em方式设置,先计算本身字体大小,然后再根据自身字体大小计算其他的em设置</div> </div>
<h2>rem是根据html标签的字体大小来计算成对应的px值</h2> <div class="divBorder"> <div class="rem继承根节点">测试继承根节点,em根据自身从父节点继承的字体大小来计算em的值。</div> </div> <div class="emContainer"> <div class="rem继承">测试继承父节点的字体大小,em根据自身从父节点继承的字体大小来计算em的值。</div> </div> <div class="emContainer"> <div class="rem本身设置字体">测试设置本身字体大小,em直接根据自身设置的字体大小进行计算。</div> </div>
<div class="emContainer"> <div class="rem本身设置em字体">本身字体以em方式设置,先计算本身字体大小,然后再根据自身字体大小计算其他的em设置</div> </div> </body>
</html>
|
参考
官网地址