当1em应用于元素时,它采用浏览器的默认值(通常为16px)或其父级的font-size值,对吗?但是我注意到如果我在margin-top: 1em
元素中使用h1
之类的东西(不使用重置样式表,因此,h1设置为font-size: 32px
),那么1em等于{{ 1}},即使其父元素设置为32px
。
但是,使用像font-size这样的东西:100%;解决了这种差异。
我错过了什么?
答案 0 :(得分:13)
当1em应用于元素时,它采用浏览器的默认值(通常为16px)或其父级的font-size值,对吗?
不,它需要自己的 font-size
,基于其父计算(或默认的浏览器提供的值)。由于浏览器提供的font-size
h1
为32像素,因此生成的边距为32像素。
但是,使用像font-size这样的东西:100%;解决了这种差异。
通过在元素上设置font-size: 100%;
或font-size: 1em;
,您告诉它使用其父级的100%字体大小,因此将1em
设置为其他任何内容的长度将遵循100%。
答案 1 :(得分:10)
1em
等于元素的字体大小。因此,当使用边距时,它将等同于您应用边距的元素的字体大小。