当前位置: 首页 > Web前端 > CSS

被误解的em单位

时间:2023-03-30 16:01:52 CSS

被误解的em单位em单位常被认为是相对于父元素的font-size来计算的。比如某元素的父元素设置如下font-size:body{font-size:20px;}并且div设置font-size为1.5em:div{font-size:1.5em;}那么div元素的字体大小=20*1.5=30px。我们都知道em是相对单位,但其实em单位是相对于自身的font-size的,我们可以试试:div{font-size:20px;保证金:2em;/*2倍自身的font-size*/}use至此,我们打破em相对于父元素大小的经典观点:body{font-size:40px;}div{font-size:20px;保证金:2em;/*我没有font-size可以计算*/}如果继承父元素的font-size的大小,div的margin计算值为60px,而不是最后的40px。显然,这个值是根据div本身的font-size计算出来的。所以这里我们之前知道的:emunitiscalculatedrelativetothefont-sizeoftheparentelement应该改为:emunitiscalculatedrelativetothefont-sizeoftheelement,butdon'tforgetthatfont-size会继承font-size的大小在日常开发中,字体单位往往使用em单位而不是其他属性单位,所以看不出em其实是相对于元素的font-size的,因为font-size直接继承了父元素的大小,所以em被误解为一直存在。