em
单位每每被认为是相对于父元素的 font-size
大小来进行计算的.css
例如一个元素的父元素设置了以下的 font-size
:字体
body { font-size:20px; }
而其中的 div
设置了 font-size
设置了 1.5em
:spa
div { font-size:1.5em; }
那么 div
元素的 font-size = 20 * 1.5 =
30px.code
咱们都知道 em
是相对单位, 可是实际上 em
单位相对的是自身的 font-size
大小, 咱们能够尝试一下:继承
div { font-size:20px; margin:2em; /* 2倍于自身的 font-size */ }
利用这一点, 咱们来打破经典的 em
是相对于父元素大小的观点:图片
body { font-size:40px; } div { font-size:20px; margin:2em; /* 我可没有相对于 body 的 font-size 来进行计算 */ }
若是继承父元素的 font-size
的大小, div
的 margin
计算值是 60px
而不是 最后的 40px
, 显然这个值是根据 div
自己的 font-size
来进行计算的.开发
因此在此以前咱们所了解的:it
em 单位是相对于父元素的 font-size 来计算的
应该改为:class
em 单位是相对于元素的 font-size 来计算的, 可是不要忘记 font-size 会继承
font-size
大小
而平常开发中 em
单位常见于字体单位的而不是其余属性的单位, 因此没法看出 em
其实是相对于元素的 font-size
, 由于 font-size
直接继承了父元素的大小, 因此 em
的误解也就一直存在了.im