被误解的 em 单位

被误解的 em 单位

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 的大小, divmargin 计算值是 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

相关文章
相关标签/搜索