当 1em 应用于元素时,它采用浏览器的默认值(通常为 16px)或其父元素的 font-size 值,对吧?但我注意到,如果我margin-top: 1em
在h1
元素中使用类似的东西(不使用重置样式表,因此 h1 设置为font-size: 32px
),那么 1em 等于32px
,即使它的父元素设置为font-size: 16px
。
但是,使用类似 font-size: 100%; 解决了差异。
我错过了什么?
当 1em 应用于元素时,它采用浏览器的默认值(通常为 16px)或其父元素的 font-size 值,对吗?
不,它需要自己的 font-size
,根据其父级(或默认浏览器提供的值)计算。由于浏览器提供font-size
的h1
是 32 像素,因此结果边距为 32 像素。
但是,使用类似 font-size: 100%; 解决了差异。
通过设置font-size: 100%;
或font-size: 1em;
在一个元素上,您告诉它使用其父级字体大小的 100%,因此1em
在其他任何内容上设置为长度将遵循该 100%。
1em
等于相关元素的字体大小。因此,当将其与边距一起使用时,它将等同于您正在应用边距的元素的字体大小。